Você está na página 1de 520

Ficha Catalográfica elaborada pela EADCON.

Bibliotecária – Cleide Cavalcanti Albuquerque CRB9/1424

Fundação Universidade do Tocantins (UNITINS)


F981a Análise e Desenvolvimento de Sistemas / Fundação Universidade
do Tocantins; EADCON. – Curitiba: EADCON, 2008
520 p.: il.

Nota: Caderno de Conteúdos e Atividades 1º período de Análise


e Desenvolvimento de Sistemas (apostila).

1. Analista de Sistemas – Formação. I. EADCON. II. Título.

CDD 378
Direitos desta edição reservados à UNITINS
É proibida a reprodução total ou parcial desta obra sem autorização expressa da UNITINS

FUNDAÇÃO UNIVERSIDADE DO TOCANTINS


Reitor Humberto Luiz Falcão Coelho
Vice-Reitor Lívio William Reis de Carvalho
Pró-Reitor de Graduação Galileu Marcos Guarenghi
Pró-Reitor de Pós-Graduação e Extensão Claudemir Andreaci
Pró-Reitora de Pesquisa Antônia Custódia Pedreira
Pró-Reitora de Administração e Finanças Maria Valdênia Rodrigues Noleto
Diretora de Ensino Patrícia Martins Bühler Tozzi
Diretor de EaD e Tecnologias Educacionais Marcelo Liberato Souza
Coordenador de Planejamento Pedagógico e Midiático Francisco Gilson Rebouças Pôrto Junior
Coordenador do Curso Igor Yepes

SOCIEDADE DE EDUCAÇÃO CONTINUADA – EADCON


Diretor Executivo Julian Rizo
Diretor de Desenvolvimento Francisco Sardo
e Qualidade Acadêmica
Diretor Acadêmico da Fael Osíris Manne Bastos
Diretora de Operações Cristiane Strenske
Diretor Administrativo e Financeiro Marcelo de Souza Silva
Diretor de Marketing Marcos Franco Ribeiro
Diretor de Pólos Institucionais Luciano G. Penteado
Diretor Comercial Renato Durante
Diretor de TI Juarez Poletto
Sumário
Lógica para Programação ...................................................................... 5
Aula 1 Conceitos básicos de lógica para programação ....................................... 11
Aula 2 Expressões e estruturas seqüenciais ......................................................... 23
Aula 3 Estrutura de seleção simples e composta .................................................. 35
Aula 4 Estrutura de seleção encadeada ............................................................. 47
Aula 5 Estrutura de repetição com teste no início ................................................ 61
Aula 6 Estrutura de repetição com teste no final .................................................. 71
Aula 7 Estrutura de repetição com variável de controle ........................................ 81

Computação Básica .............................................................................. 95


Aula 1 História da computação ...................................................................... 101
Aula 2 Componentes básicos do computador ................................................... 115
Aula 3 Sistemas posicionais de numeração ...................................................... 125
Aula 4 Operações aritméticas no sistema binário de numeração ........................ 141
Aula 5 Classificação de software .................................................................... 155
Aula 6 Noções básicas de redes de computadores e banco de dados ................ 163
Aula 7 O profissional de informática ............................................................... 173

Informática e Sociedade ..................................................................... 189


Aula 1 Fundamentos de Sociologia ................................................................. 195
Aula 2 A sociedade da informação ................................................................. 205
Aula 3 Situação atual da informatização da sociedade nos seus vários setores .... 215
Aula 4 Cibercultura: a interconexão ................................................................ 227
Aula 5 Mercado de trabalho .......................................................................... 237
Aula 6 Cyberprofissional, cyberoportunidades.................................................. 251
Aula 7 O futuro da sociedade: algumas questões ............................................. 265
Algoritmos e Programação................................................................. 277
Aula 1 Introdução à programação em linguagem C........................................... 283
Aula 2 Estruturas de controle: condicionais........................................................ 297
Aula 3 Estruturas de controle: repetição............................................................ 309
Aula 4 Matrizes e vetores................................................................................ 321
Aula 5 Estruturas (struct ) e tipos definidos pelo programador............................... 335
Aula 6 Modularização – funções, argumentos e parâmetros................................ 347
Aula 7 Cadeias de caracteres: Strings.............................................................. 359

Matemática para Computação............................................................ 369


Aula 1 Teoria dos conjuntos............................................................................. 375
Aula 2 Análise de sentenças............................................................................ 387
Aula 3 Lógica proposicional............................................................................ 399
Aula 4 Tabela – verdade................................................................................ 411
Aula 5 Implicação e equivalência lógica........................................................... 421
Aula 6 Lógica de predicados........................................................................... 433
Aula 7 Álgebra de Boole e mapas de Karnaugh................................................ 443

Fundamentos de Sistemas de Informação............................................ 453


Aula 1 Teoria geral de sistemas....................................................................... 459
Aula 2 Conceitos e componentes dos sistemas de informação............................. 469
Aula 3 Tipologias de sistemas de informação.................................................... 477
Aula 4 O processo de tomada de decisão........................................................ 487
Aula 5 Sistemas de informação e o processo decisório....................................... 495
Aula 6 Informação operacional....................................................................... 505
Aula 7 Informação gerencial........................................................................... 513
EQUIPE UNITINS
Organização de Conteúdos Acadêmicos Igor Yepes

Coordenação Editorial Maria Lourdes F. G. Aires

Revisão Lingüístico-Textual Sibele Letícia Rodrigues Oliveira Biazotto

Gerente de Divisão de Material Impresso Katia Gomes da Silva

Revisão Digital Helena Carolina Costa e Lima Prestes

Projeto Gráfico Irenides Teixeira


Katia Gomes da Silva
Ilustração Geuvar S. de Oliveira

Capas Igor Flávio Souza

Equipe EADCON
Coordenador Editorial William Marlos da Costa

Assistentes de Edição Ana Aparecida Teixeira da Cruz


Janaina Helena Nogueira Bartkiw
Lisiane Marcele dos Santos
Programação Visual e Diagramação Denise Pires Pierin
Kátia Cristina Oliveira dos Santos
Monica Ardjomand
Rodrigo Santos
Sandro Niemicz
William Marlos da Costa
Caro estudante,
Você está recebendo o material para estudo da disciplina de Lógica para
Programação, a qual contribuirá para o desenvolvimento de habilidades e
competências essenciais ao perfil do profissional da área de análise e desenvol-
vimento de sistemas.
O objetivo deste material é apresentar os principais conceitos e técnicas
utilizadas no desenvolvimento de algoritmos e, para isso, utilizará o Português
Estruturado. Mas... O que são algoritmos? Muito simples: são conjuntos de regras

Apresentação
e procedimentos lógicos claramente definidos, necessários para a solução de um
problema em um número finito de etapas.
Assim, na aula um, veremos os conceitos básicos de lógica para programação
e as formas mais utilizadas para a representação de algoritmos.
A aula dois abordará os operadores lógico-matemáticos e relacionais, necessá-
rios para a construção de expressões. Iniciaremos também a construção de algoritmos
seqüenciais, aprendendo os comandos básicos de entrada e saída de dados.
As estruturas de seleção serão apresentadas nas aulas três e quatro, abordando mais
especificamente o desvio condicional simples, composto e encadeado. E, finalmente,
nas aulas cinco, seis e sete, conheceremos as diferentes estruturas de repetição.
A disciplina de lógica para programação é de extrema importância, uma vez
que nos apresenta o embasamento necessário para a implementação de soluções
computacionais para problemas do mundo real.
Em breve, você desenvolverá complexos sistemas baseados nos conheci-
mentos que começará a adquirir aqui.
Bons estudos!
Prof. Igor Yepes
EMENTA
Representação do pensamento lógico. Fundamentos de algoritmos. Variáveis
e constantes. Programação estruturada. Estruturas de seleção e repetição.

OBJETIVOS
• Apresentar os principais conceitos de Lógica para Programação
Plano de Ensino

aplicados à solução de problemas, mediante o uso de sistemas


computacionais.
• Proporcionar a compreensão do uso adequado das técnicas básicas
para construção de algoritmos.

CONTEÚDO PROGRAMÁTICO
• Fundamentos de lógica aplicada ao desenvolvimento de algoritmos
• Formas de representação de algoritmos
• Operadores e tipos de dados utilizados para construção de
expressões
• Variáveis e constantes
• Estruturas seqüenciais
• Estruturas de seleção
• Estruturas de repetição
BIBLIOGRAFIA BÁSICA
CARBONI, Irenice de Fátima. Lógica de programação. São Paulo: Thomson,
2003.
FORBELLONE, André Luiz Villar; EBERSPACHER, Henri Frederico. Lógica de
programação: a construção de algoritmos e estruturas de dados. 3. ed. São
Paulo: Makron Books, 2005.
MANZANO, José Augusto N. G.; OLIVEIRA, Jayr Figueiredo de. Algoritmos:
lógica para desenvolvimento de programação de computadores. 16. ed. São
Paulo: Érica, 2005.

BIBLIOGRAFIA COMPLEMENTAR
LOPES, Anita; GARCIA, Guto. Introdução à programação: 500 algoritmos resol-
vidos. Rio de Janeiro: Campus, 2002.
ORTH, Afonso Inácio. Algoritmos e programação com resumo das linguagens
Pascal e C. Porto Alegre: AIO, 2001.
SOUZA, Marco Antonio Furlan de; GOMES, Marcelo Marques; SOARES, Marcio
Vieira. Algoritmos e lógica de programação. São Paulo: Thomson, 2005.

unitins • análise e desenvolvimento de sistemas • 1º PeRÍodo 9


aula 1 • lógica PaRa PRogRamação

Aula 1
Conceitos básicos de lógica
para programação

Esperamos que, ao final desta aula, você seja capaz de:


• compreender os conceitos básicos de algoritmos;
• identificar as formas de representação de algoritmos.

Por ser a primeira aula da disciplina e o ponto de partida para os demais


conteúdos de programação do curso, não há pré-requisitos. Contudo é impres-
cindível a persistência no estudo, a curiosidade e a vontade de procurar conhe-
cimento em fontes externas ao caderno de conteúdos e atividades.

Como você se sai na solução de problemas? Certamente você se depara


com inúmeros problemas no seu dia-a-dia e resolve a maioria deles sem ao
menos se dar conta. São muitas as situações que você enfrenta diariamente
que exigem raciocínio lógico. Dirigir, subir escadas, andar de ônibus, cozinhar,
enfim, a todo instante você deve tomar decisões e utilizar a lógica para superar
obstáculos da melhor forma possível.
Mas afinal, o que é lógica? Nesta aula você terá a resposta para essa
pergunta e iniciará o aprendizado de lógica para programação, ou seja, a
lógica voltada para a solução de problemas de forma computacional.

1.1 Lógica
Segundo o dicionário eletrônico Houaiss (2007) da língua portuguesa,
a lógica é a parte da filosofia que trata das formas do pensa-
mento em geral (dedução, indução, hipótese, inferência, etc.) e
das operações intelectuais que visam à determinação do que é
verdadeiro ou não.

unitins • análise e desenvolvimento de sistemas • 1º PeRÍodo 11


aula 1 • lógica PaRa PRogRamação

Ainda segundo o dicionário eletrônico Houaiss (2007), temos outro conceito


de lógica, mais voltado à informática, em que afirma que “a lógica é a organi-
zação e planejamento das instruções, assertivas etc. em um algoritmo, a fim de
viabilizar a implantação de um programa”.
Muito bem. E para desenvolver um programa para computador, necessitamos
da lógica? Lógico! Um programa de computador nada mais é do que um conjunto
finito de instruções ordenadas logicamente para a solução de um problema.
Então, assim como você utiliza a lógica para solucionar problemas do seu
cotidiano, é realizada a mesma coisa para o desenvolvimento de uma solução
computadorizada. O que difere essas soluções é sua forma de representação.
Ou seja, enquanto no dia-a-dia você resolve problemas mediante o uso da
descrição narrativa, também chamada de linguagem natural (seguindo passo a
passo uma receita de bolo ou o manual de instruções de um eletrodoméstico),
a solução de um problema por meios computacionais exige uma linguagem e
regras mais rígidas, fixas e pré-definidas, e é justamente a lógica utilizada para
construção dessas soluções computadorizadas que nós estudaremos nesta disci-
plina, mediante a utilização de algoritmos.

1.2 Algoritmos e solução de problemas


Consultando mais uma vez o dicionário eletrônico Houaiss (2007), obser-
vamos que ele define algoritmo como “conjunto das regras e procedimentos
lógicos perfeitamente definidos que levam à solução de um problema em um
número finito de etapas”.
Fica claro nessa definição que, na construção de um algoritmo, não será
utilizada a linguagem natural. Estamos falando de regras e procedimentos
lógicos perfeitamente definidos, pois, ao contrário da linguagem natural, em que
podem ocorrer regionalismos, gírias e palavras com múltiplos sentidos, conforme
o contexto, para o computador devemos especificar a linguagem de forma bem
rigorosa, com suas estruturas bem definidas, não permitindo ambigüidade.
Assim, para trabalhar com lógica para programação, devemos seguir
comandos e estruturas mais rígidas, previamente estabelecidas em português
estruturado, uma pseudolinguagem – isso mesmo, pseudolinguagem, pois não é
uma linguagem propriamente dita.
O português estruturado, também conhecido como portugol, foi desenvol-
vido para facilitar a compreensão dos princípios básicos da programação de
computadores, seguindo os requisitos básicos gerais à maioria das linguagens de
programação utilizadas. Assim o portugol é uma forma de aprender os conceitos
lógicos para o desenvolvimento de programas de computador, utilizando uma
linguagem mais próxima da nossa, ao invés do inglês, utilizado pela maioria
das linguagens de programação existentes (C, Pascal, Java, etc.).

12 1º PeRÍodo • análise e desenvolvimento de sistemas • unitins


aula 1 • lógica PaRa PRogRamação

Mas só é possível desenvolver algoritmos utilizando esse tal de portugol?


Não. Apesar de o portugol ser a metodologia mais utilizada para o ensino de
lógica para programação em virtude de sua semelhança com as linguagens
de programação propriamente ditas, existem outras técnicas utilizadas para o
desenvolvimento de algoritmos, como explicaremos a seguir.

1.3 Formas de representação de algoritmos


Podemos representar os algoritmos de várias formas, entre as quais podem
ser citadas como as mais conhecidas:
• descrição narrativa
• fluxograma
• português estruturado
Vejamos, a seguir, as características de cada uma dessas formas de
representação.

1.3.1 Descrição narrativa


A descrição narrativa é geralmente utilizada quando desejamos apresentar
um algoritmo de forma que um leigo em programação consiga compreender seu
funcionamento. Porém esse tipo de representação está mais sujeito à imprecisão
e à falta de confiabilidade na correta interpretação, além de termos, por vezes,
uma descrição bastante extensa para expressar poucas instruções.
Na descrição narrativa, utilizamos a linguagem natural para apresentar a
seqüência de passos necessária para resolver um determinado problema. Esse
tipo de algoritmo é muito utilizado em manuais, explicando detalhadamente o
funcionamento de algum aparelho, os procedimentos de uma receita culinária,
etc. Vejamos o exemplo de um algoritmo para calcular a média de um aluno
usando descrição narrativa.

Algoritmo para cálculo da média de um aluno:

1.3.2 Fluxograma
O fluxograma é uma forma de representação algorítmica intermediária entre
a descrição narrativa e o português estruturado. Apresenta menos imprecisão que
a primeira, sem se preocupar com detalhes de implementação do programa.

unitins • análise e desenvolvimento de sistemas • 1º PeRÍodo 13


aula 1 • lógica PaRa PRogRamação

O fluxograma é uma forma de representação gráfica do fluxo de instruções


do algoritmo. Cada uma das possíveis ações durante a execução do algoritmo é
representada por uma figura geométrica associada ao tipo de ação. É bastante
útil para representação de algoritmos pequenos, facilitando sua compreensão.
Contudo, caso o algoritmo seja muito extenso, esse tipo de representação pode
surtir o efeito contrário, dificultando a visualização da seqüência de instruções.
Basicamente, são utilizadas figuras para representação dos processos em
um fluxograma, conforme você pode observar a seguir.

Quadro 1 Figuras utilizadas no portugol IDE para elaboração de fluxogramas.

NOME DESCRIÇÃO SÍMBOLO

Responsável pelo início e fim de um


programa. Existem dois tipos:
• a forma de início que serve para iniciar
um programa e que apenas deixa sair
Terminador
um conector;
• a forma de fim que serve para terminar
um programa e que apenas deixa
entrar um conector.

Responsável pela leitura do valor dos


dados. Possibilita ler um valor de cada
Leitura
vez, permitindo apenas uma entrada e uma
saída de conectores.

Responsável pela execução de processos,


como a atribuição de valores, partindo de
Processo
uma determinada expressão. Permite apenas
uma entrada e uma saída de conectores.

Responsável pela escrita (exibição). Permite


escrever vários valores passados por argu-
Escrita
mentos e separados por vírgulas. Deixa
apenas a entrada e saída de um conector.

14 1º PeRÍodo • análise e desenvolvimento de sistemas • unitins


aula 1 • lógica PaRa PRogRamação

Responsável pelas decisões que ocorrem


no programa e onde tem de ser feita uma
seleção. Exige a saída de dois conectores
para as seleções em que a expressão é verda-
deira ou falsa. Permite ainda a entrada de
dois conectores para a criação de ciclos.
Decisão
Obs: essa forma não tem uma equiva-
lência predefinida em pseudolinguagem.
No entanto, ao ser usada de determi-
nadas maneiras, permite criar vários tipos
de estruturas de seleção existentes no
pseudocódigo.
Essa forma é responsável pela união dos
vários fluxos de dados existentes. Pode ser
usada de várias maneiras distintas, usual-
mente quando se pretende que existam
varias partes do código a executar as
Conexão mesmas instruções (ciclos), ou quando há
uma conexão do fluxo provocado por uma
decisão condicional.
Essa é a única forma que permite um
número ilimitado de entradas, mas possibi-
lita apenas uma saída.
Fonte: adaptado do arquivo de ajuda do Portugol IDE 2.3 (MANSO, 2005).

Vejamos, a seguir, um exemplo de fluxograma para resolver o problema


do cálculo da média de um aluno, representado anteriormente por meio de
descrição narrativa.

Figura 1 Exemplo básico de fluxograma (não seguindo o padrão do Portugol IDE).

unitins • análise e desenvolvimento de sistemas • 1º PeRÍodo 15


aula 1 • lógica PaRa PRogRamação

1.3.3 Pseudocódigo
Finalmente, apresentamos a forma de representação de algoritmos mediante
utilização de pseudocódigo, o qual, como explicado anteriormente, é uma forma
de representação mais próxima das linguagens de programação e, ao mesmo
tempo, de fácil compreensão por ser escrita em português. Isso facilita o apren-
dizado e permite que nos preocupemos mais com a construção da estrutura
lógica requerida do que com a linguagem utilizada. Contudo segue normas
semelhantes às linguagens de programação na sua utilização.

Figura 2 Exemplo básico de pseudocódigo no padrão do portugol ide.


//Algoritmo para calcular média
inicio
real n1, n2, media
escrever “Digite a primeira nota:”
ler n1
escrever “Digite a segunda nota:”
ler n2
media <– (n1 + n2) / 2
escrever “Média = ”, media
fim

1.4 Tipos de dados


Como vimos nos exemplos anteriores, os algoritmos irão manipular e
processar dados que podem ser fornecidos pelo usuário, por outro sistema ou
gerados pelo próprio processamento do algoritmo e, geralmente, após o proces-
samento retornam algum tipo de informação.
Assim como as linguagens de programação, o pseudocódigo também impõe
algumas regras para limitar o conjunto de dados que poderão ser utilizados
pelos algoritmos. Esses tipos básicos de dados classificam-se em:
• numéricos
• caracteres
• lógicos
Vejamos, a seguir, cada um desses tipos de dados de forma mais detalhada.

1.4.1 Dados numéricos


Os dados numéricos podem ser subdivididos em dois tipos. Veja na seqüência.
• Inteiros: todo e qualquer número pertencente ao conjunto dos números
inteiros relativos (negativo, nulo ou positivo). O conjunto desse tipo de
dados pode ser definido como Z= {..., –4, –3, –2, –1, 0, 1, 2, 3,...}.
• Reais: todo e qualquer número pertencente ao conjunto dos números
reais (negativo, nulo ou positivo). O conjunto desse tipo de dados inclui

16 1º PeRÍodo • análise e desenvolvimento de sistemas • unitins


aula 1 • lógica PaRa PRogRamação

o conjunto dos números inteiros, dos números fracionários e dos números


irracionais. O conjunto dos números fracionários pode ser definido como
Q = {p/q | p, q pertencem a Z}. O conjunto dos números irracionais é
composto por números incapazes de serem expressos exatamente como
a razão entre dois números inteiros. Temos como exemplo o número
PI=3.141515...

1.4.2 Caracteres ou texto


Caracteres ou textos são toda e qualquer informação composta por um
conjunto de caracteres alfanuméricos: numéricos (0...9), alfabéticos (A...Z, a...z)
e especiais (?, #, @, !, ...). Tem aplicação principalmente no tratamento de
textos e são normalmente representados no pseudocódigo por uma seqüência de
caracteres entre aspas, como nos exemplos seguintes:
• “Lógica para Programação”
• “Av. 7 de Setembro, n° 42, sala 3.”
• “14.235”
• “BGT-4236”
• “a”

1.4.3 Dados Lógicos


Os dados lógicos são também conhecidos como dados booleanos devido
ao matemático George Boole, que deu origem à álgebra booleana, a qual
trabalha com esse tipo de dados. Os dados booleanos são muito utilizados para
o processo de tomada de decisões no algoritmo. Eles admitem apenas duas situ-
ações: verdadeiro ou falso. Mais adiante você poderá compreender com clareza
como esse tipo de dados será empregado na construção de algoritmos.
Agora que conhecemos os tipos de dados básicos que utilizaremos para
implementar nossos algoritmos, necessitamos saber como armazenar esses dados
para utilização durante a execução do pseudocódigo. Para isso, lançamos mão
das variáveis e constantes, como veremos a seguir.

1.5 Variáveis e constantes


Nos algoritmos, os dados podem ser variáveis ou constantes. Se um dado é clas-
sificado como variável, isso significa que seus valores podem ser livremente modi-
ficados no decorrer do algoritmo (observado seu escopo), enquanto as constantes
representam valores que não podem ser modificados em tempo de execução.
Variável é a denominação dada aos nomes por meio dos quais iremos refe-
renciar posições de memória no computador, que conterão os dados a serem
manipulados pelo algoritmo. A variável, como o seu próprio nome indica, pode
ter seu conteúdo alterado durante a execução do algoritmo, e é no momento

unitins • análise e desenvolvimento de sistemas • 1º PeRÍodo 17


aula 1 • lógica PaRa PRogRamação

da sua declaração que definimos o tipo de dado que irá conter e, conseqüente-
mente, o espaço de memória que será reservado para isso.
A nomenclatura das variáveis deve seguir as seguintes regras básicas:
• não pode iniciar por um número;
• não podem ser utilizados caracteres especiais, com exceção do subli-
nhado ( _ );
• não podem ser utilizadas palavras reservadas da linguagem para nome
de variáveis.
Seguindo tais regras, podemos exemplificar como nomes válidos para variá-
veis:
• Nome
• Nota1
• Data_nascimento
• _1
• x
Dessa forma, alguns exemplos de nomes não-válidos seriam:
• @Nom2e (iniciando com um caractere especial diferente de _)
• 1Nota (iniciando com um número)
• Data nascimento (com espaço em branco no meio)
Por outro lado, temos as constantes, cujo valor permanece inalterado durante
a execução do algoritmo. A nomenclatura das constantes, caso sejam explici-
tamente declaradas, segue as mesmas regras estipuladas para a nomenclatura
das variáveis, com exceção de que não é possível omitir o seu valor de inicia-
lização. Ou seja, ao declarar uma constante, devemos atribuir imediatamente
o seu valor inicial; enquanto que para as variáveis, o valor pode ser atribuído
posteriormente à sua declaração.
Pois é... Finalizamos nossa primeira aula com uma boa noção das principais
formas de representação de estruturas algorítmicas, compreendendo suas aplica-
ções e sua utilidade na codificação de soluções.

Nesta aula, discorremos um pouco sobre os fundamentos da lógica de


programação. Conceituamos os algoritmos e explicamos as suas formas de
representação, que são: descrição narrativa, ou apresentação do algoritmo em
linguagem natural; fluxogramas, ou descrição dos passos do algoritmo por meio
de gráficos compostos por figuras específicas para cada tipo de comando e

18 1º PeRÍodo • análise e desenvolvimento de sistemas • unitins


aula 1 • lógica PaRa PRogRamação

setas que indicam o fluxo das ações; e, finalmente, o pseudocódigo ou portu-


guês estruturado, que nos apresenta uma forma de representação lógica mais
próxima da utilizada pela maioria das linguagens de programação e, por esse
motivo, será a forma de representação utilizada para iniciarmos nossos estudos
na área de desenvolvimento de sistemas.
Estudamos os tipos de dados utilizados para a construção de algoritmos
para representação de texto, números e expressões lógico-matemáticas, bem
como aprendemos sobre variáveis e constantes, que representam uma forma de
acesso a espaços reservados na memória do computador para armazenamento
dos dados utilizados pelo algoritmo.

1. Com o passar do tempo e de estudos dos algoritmos, foram desenvolvidas


inúmeras formas de se representar um algoritmo de modo a facilitar o seu
entendimento e, mais tarde, a sua tradução para uma linguagem de progra-
mação específica. Acerca das formas de representação de um algoritmo,
leia as afirmativas a seguir e, em seguida, assinale a alternativa correta.
I. Fluxograma é a forma gráfica de representar um algoritmo mais conhe-
cida e utilizada. O fluxograma nos permite mostrar graficamente a lógica
de um algoritmo, enfatizando passos individuais e o fluxo de execução.
II. Descrição narrativa é a forma de representação utilizada em algoritmos
não-computacionais, como receitas culinárias. Dessa forma, as instru-
ções são descritas livremente sem preocupações com os tipos de pala-
vras utilizadas e, geralmente, são utilizadas frases longas e prolixas.
III. O pseudocódigo permite ao programador expressar as suas idéias sem
ter de se preocupar com a sintaxe da linguagem de programação. Para
isso, são utilizadas primitivas (comandos genéricos) que podem ser facil-
mente traduzidas para uma linguagem de programação específica.

a) Somente I é falsa.
b) Somente II é falsa.
c) Somente III é falsa.
d) Todas as afirmativas são verdadeiras.

2. Sobre algoritmos, assinale a alternativa correta.


a) Para um mesmo problema, podemos criar diferentes algoritmos usando
diferentes abordagens. Em outras palavras, podemos usar diferentes
seqüências de instruções para resolver o mesmo problema. Em alguns
casos, até mesmo diferentes instruções.

unitins • análise e desenvolvimento de sistemas • 1º PeRÍodo 19


aula 1 • lógica PaRa PRogRamação

b) Um algoritmo, na linguagem da programação de computadores, repre-


senta uma seqüência de instruções que o computador deve executar, inde-
pendentemente de sua ordem, a fim de atingir um objetivo definido.
c) O algoritmo pode ser visto como a solução do problema. Assim, em um
problema qualquer, só existirá uma forma de resolvê-lo.
d) Podemos dizer que um algoritmo é a organização do pensamento para
a solução de um problema. Portanto o algoritmo não pode ser encarado
como uma representação da lógica.

3. Discorra (em um texto de ao menos dez linhas) sobre as diferentes formas


de representação algorítmica, enfatizando a utilidade do pseudocódigo no
aprendizado de lógica para programação.

4. Diferencie variáveis de constantes (e elabore um texto de até dez linhas).

As atividades um e três ajudaram você a alcançar o objetivo de identificar


as formas de representação de algoritmos. A alternativa correta da atividade
um é a (b). A afirmativa ( I ) é verdadeira porque é a forma gráfica de se repre-
sentar algoritmo mais conhecida e utilizada. O fluxograma é capaz de descrever
graficamente a ordem de execução de instruções e o fluxo delas. A afirmativa
(II) é falsa porque existem regras para se escrever algoritmos em descrição narra-
tiva a fim de ser objetivo e evitar ao máximo a dubiedade. A afirmativa (III)
está correta. Pseudocódigo é uma forma de representação intermediária entre
descrição narrativa e linguagem de programação, por isso não é necessário se
preocupar com a sintaxe de linguagem de programação.
As atividades dois e quatro ajudaram você a alcançar o objetivo de compre-
ender os conceitos básicos de algoritmos. Na atividade dois, a alternativa
correta é a (a), pois o algoritmo não é a solução do problema, mas uma forma
de solucioná-lo. Quase sempre existe mais do que uma maneira de resolver um
problema. A alternativa (b) é falsa porque a ordem na qual as instruções serão
executadas é de fundamental importância para a efetividade da solução algorít-
mica, o que contradiz essa alternativa. A alternativa (c) também é falsa porque
vai contra a alternativa (1), já vista como correta. Por fim, a alternativa (d) é
falsa porque, ao contrário do que diz a alternativa, o algoritmo pode sim ser
encarado como uma representação da lógica.
A atividade três versa sobre os tipos de representação de algoritmos,
sendo três os principais: descrição narrativa, fluxograma e pseudocódigo. A
descrição narrativa é uma forma de representação de algoritmos mediante o
uso de linguagem natural, o que pode gerar ambigüidade na interpretação

20 1º PeRÍodo • análise e desenvolvimento de sistemas • unitins


aula 1 • lógica PaRa PRogRamação

ou comandos duvidosos, devido à sua falta de formalismo lógico e de regras


e instruções pré-definidas e bem delimitadas. O fluxograma é uma forma de
representação gráfica do algoritmo, mostrando seus processos básicos com uso
de figuras geométricas pré-definidas, de forma a evitar dubiedade, como pode
acontecer no caso da descrição narrativa. O fluxograma é uma forma de repre-
sentação intermediária entre a descrição narrativa e o pseudocódigo, pois ele
não se preocupa com os detalhes das linguagens de programação. Finalmente,
o pseudocódigo representa uma forma de escrever algoritmos mais próxima
das linguagens de programação propriamente dita. Para trabalhar com pseu-
docódigo, utilizaremos o português estruturado (ou portugol), em que, seguindo
estruturas bem definidas, poderemos construir algoritmos bem próximos da sua
versão final, em uma linguagem de programação específica. Dessa forma, o
pseudocódigo representa a melhor forma para o aprendizado de lógica para
programação, viabilizando uma forma de se acostumar com os tipos de estru-
turas lógicas mais utilizadas nas linguagens de programação em geral.

A atividade quatro solicita a realização de uma diferenciação entre variá-


veis e constantes. Podemos então dizer que variáveis são nomes utilizados para
referenciar endereços de memória do computador, nos quais poderemos ter
dados armazenados. Esses dados atribuídos a variáveis podem sofrer alterações
durante a execução do algoritmo, mediante manipulação do seu conteúdo em
expressões ou instruções do pseudocódigo. As constantes representam valores
que não podem sofrer alteração durante a execução do pseudocódigo, perma-
necendo inalteradas durante o processo.

HOUAISS, Antônio. Dicionário Eletrônico Houaiss da língua portuguesa. Rio de


Janeiro: Objetiva, 2007.

MANSO, Antônio. Software: Portugol IDE – simulador de linguagem algorítmica.


Portugal: Instituto Politécnico de Tomar, 2005.

Abordaremos os operadores necessários para a construção de expressões


– operadores matemáticos, lógicos e relacionais. Junto com esse conteúdo, você
conhecerá os comandos básicos de entrada e saída (leitura e escrita) do portu-
guês estruturado.

Estamos apenas começando, mas como você pôde observar, já há bastante


informação para armazenar e processar. Não deixe para consultar o material
de estudos apenas na aula seguinte!

unitins • análise e desenvolvimento de sistemas • 1º PeRÍodo 21


aula 1 • lógica PaRa PRogRamação

Anotações

22 1º PeRÍodo • análise e desenvolvimento de sistemas • unitins


aula 2 • lógica PaRa PRogRamação

Aula 2
Expressões e estruturas seqüenciais

Esperamos que, ao final desta aula, você seja capaz de:


• reconhecer os operadores básicos para a construção de expressões;
• utilizar os comandos básicos de entrada e saída para implementação
de algoritmos seqüenciais.

É recomendável uma boa compreensão dos tipos de dados abordados na


aula um, bem como da lógica básica para interpretação dos fluxogramas e
pseudocódigos que serão apresentados. É interessante relembrar os operadores
lógico-matemáticos vistos durante o ensino médio, pois são fundamentais para
as disciplinas de programação.

Uma vez que já temos uma visão geral das formas de representação de
algoritmos e os tipos de dados por eles utilizados, temos de aprender como
manipular esses dados de forma apropriada. Para isso, devemos conhecer os
operadores e os tipos de expressões que podemos construir com eles.
Após entendermos como formular expressões para uso nos procedimentos
algorítmicos, poderemos iniciar o aprendizado dos comandos básicos de entrada
e saída para construção de algoritmos seqüenciais, nos quais são executados
todos os passos (instruções) na seqüência apresentada, da primeira até a última
linha, sem omissões e sem repetições.
Bateu a curiosidade? Então vamos lá!

2.1 Expressões
Uma expressão pode ser composta por uma variável, uma constante, ou qual-
quer combinação válida entre variáveis, constantes e operadores que retornem
um resultado após a sua execução.

unitins • análise e desenvolvimento de sistemas • 1º PeRÍodo 23


aula 2 • lógica PaRa PRogRamação

Já sabemos o que são variáveis e constantes e conhecemos os tipos de


dados necessários para implementar um algoritmo. Assim, para podermos
avançar para o próximo passo, a criação de expressões, falta-nos apenas mais
um detalhe: necessitamos conhecer os operadores.

2.1.1 Operadores
Tanto na construção de algoritmos quanto no desenvolvimento de programas
em linguagens computacionais, utilizaremos basicamente três tipos de operadores:
• aritméticos
• lógicos
• relacionais
Antes de conhecermos esses operadores, é importante conhecer o operador
de atribuição (←), utilizado para transferir o resultado de uma expressão para
uma variável. Por exemplo:
a←3
b←2
soma ← a + b
Agora sim, vamos conhecer cada um dos tipos de operadores (aritméticos,
lógicos e relacionais) mais detalhadamente.
a) Operadores aritméticos
As expressões aritméticas nos fornecem como resultado da sua execução um
valor numérico (inteiro ou real). A tabela a seguir relaciona os operadores
aritméticos que iremos utilizar, bem como a sua ordem de prioridade de
execução dentro da expressão.

Quadro 1 Operadores matemáticos do Portugol IDE.


OPERADOR DESCRIÇÃO PRIORIDADE
^ Potenciação 1
% Módulo – resto da divisão inteira 2
* Multiplicação 2
/ Divisão 2
– Subtração 3
+ Adição 3
Fonte: adaptado do arquivo de ajuda do Portugol IDE 2.3 (MANSO, 2005).

No quadro anterior, a coluna da prioridade indica a ordem em que cada


operação deverá ser executada dentro da expressão. Assim a potenciação
é realizada antes de qualquer outra operação, pois tem prioridade um. Em
contrapartida, a adição e a subtração são as últimas operações realizadas,
pois têm prioridade 3.

24 1º PeRÍodo • análise e desenvolvimento de sistemas • unitins


aula 2 • lógica PaRa PRogRamação

As prioridades apontadas na tabela anterior não são suficientes para resolver


todas as situações. Sabendo disso, temos algumas regras adicionais. Veja
quais são a seguir.
• No caso de empate na ordem de prioridade durante a resolução de uma
expressão (mais de um operador com o mesmo nível de prioridade), as
operações de mesma prioridade devem ser resolvidas da esquerda para
a direita.
• Os parênteses devem ser utilizados para alterar a ordem de prioridade de
execução das operações. Quando houver parênteses dentro de parênteses,
as operações dentro dos parênteses mais internos são realizadas primeiro.
b) Operadores lógicos
As expressões lógicas, assim como os tipos de dados booleanos vistos
na primeira aula, são aquelas cujo resultado assume somente os valores
verdadeiro ou falso. O quadro seguinte mostra os operadores lógicos e sua
respectiva ordem de precedência.

Quadro 2 Operadores lógicos do Portugol IDE .


OPERADOR DESCRIÇÃO PRIORIDADE
Ou ou lógico 3
E e lógico 2
Não não lógico 1
Fonte: adaptado do arquivo de ajuda do Portugol IDE 2.3 (MANSO, 2005).

Considerando duas variáveis, A e B, e suas possíveis combinações de


valores, podemos elaborar o conjunto de soluções apresentado no quadro
a seguir, o qual ajuda a compreender melhor o resultado de expressões que
utilizem essa categoria de operadores.

Quadro 3 Tabela verdade dos operadores lógicos.


A B A ou B AeB não B
Falso Falso Falso Falso Verdadeiro
Falso Verdadeiro Verdadeiro Falso Falso
Verdadeiro Falso Verdadeiro Falso Verdadeiro
Verdadeiro Verdadeiro Verdadeiro Verdadeiro Falso

Como você pode verificar, o ou lógico só retorna falso como resultado caso
os dois operandos comparados por ele contenham um valor falso. Se ao menos
um dos operandos for verdadeiro, o resultado será verdadeiro. O e lógico só
retornará um resultado verdadeiro se os dois operandos por ele comparados
forem também verdadeiros. Caso ao menos um dos operandos seja falso, o
resultado também será falso. Finalmente, o não lógico (ou operador lógico de
negação), serve para inverter o valor.

unitins • análise e desenvolvimento de sistemas • 1º PeRÍodo 25


aula 2 • lógica PaRa PRogRamação

c) Operadores relacionais
Temos ainda mais um tipo de operadores que pode ser utilizado em expres-
sões lógicas: os operadores relacionais. O quadro a seguir nos apresenta
esses operadores.

Quadro 4 Operadores relacionais do Portugol IDE.


OPERADOR DESCRIÇÃO
> maior que
< menor que
>= maior ou igual a
<= menor ou igual a
= igual a
=/= diferente de
Fonte: adaptado do arquivo de ajuda do Portugol IDE 2.3 (MANSO, 2005).

A aplicabilidade desses operadores será melhor compreendida quando


começarmos a trabalhar com as estruturas de controle, assunto que se
iniciará na próxima aula.

2.2 Estruturas seqüenciais


Para que você possa começar a desenvolver algoritmos só está faltando
conhecer a estrutura básica de um pseudocódigo e os seus comandos básicos
de entrada e saída (leitura e escrita).
A estrutura de um algoritmo pode ser visualizada no exemplo a seguir.
Figura 1 Estrutura básica de um pseudocódigo.

Certo... Vamos agora a uma breve explicação dessa estrutura. As duas barras
no início da primeira linha indicam que o conteúdo após as barras (//), até o final
dessa linha, é um comentário. Logo não será considerado para execução. Caso
deseje especificar trechos de comentário superiores a uma linha, basta iniciar com
/* e finalizar o trecho com */. Toda a área compreendida entre essas duas marca-
ções será tratada como comentário, não influindo na execução do pseudocódigo.

26 1º PeRÍodo • análise e desenvolvimento de sistemas • unitins


aula 2 • lógica PaRa PRogRamação

É interessante que você insira comentários no seu código sempre que neces-
sário, para explicar uma peculiaridade de um cálculo, uma funcionalidade espe-
cífica, etc. Isso é muito útil na hora de realizar alterações no código, pois caso
você, ou até mesmo outro programador, necessite alterar alguma funcionalidade,
com algumas dicas espalhadas pelo código fica mais fácil saber a que se refere
um determinado trecho do algoritmo.
O início e fim do bloco principal do algoritmo são claramente delimitados
pelas palavras início e fim. Entre essas duas marcações é que devem ser inse-
ridas todas as instruções a serem executadas pelo pseudocódigo.
É recomendável realizar a declaração de variáveis e constantes logo no
início do bloco principal, apesar de ser permitido realizar essa declaração em
qualquer trecho do código (desde que seja antes da utilização da variável em
alguma expressão ou comando). Se ficar definido como padrão a declaração no
início, facilita bastante na hora de realizar alguma manutenção ou alteração.
Após a área de declaração, são inseridos os comandos e expressões que
devem ser executados.

2.2.1 Declaração de variáveis e constantes


Na aula anterior, falamos sobre os diferentes tipos de dados. Pois bem. Nos
algoritmos que iremos construir, teremos a seguinte definição de tipos, apresen-
tada a seguir.

Quadro 5 Tipos de dados que serão utilizados na disciplina.


TIPO DESCRIÇÃO
Valores inteiros.
Inteiro
Ex.: –10, –5, 0, 1, 34, 2000
Valores inteiros ou com parte decimal.
real
Ex.: –10.0, –7.74, –5.0, –2.234, 0.0, 15.002, 34.0, 1000.02
Valores lógicos.
lógico
Ex: verdadeiro e falso
Caracteres isolados.
caracter
Ex.: “a”, “x”, “n”, “1”
Conjunto de caracteres alfanuméricos.
texto
Ex: “Mensagem”, “QDB-0989”, “João Carlos Cunha”, “x2”
Fonte: adaptado do arquivo de ajuda do Portugol IDE 2.3 (MANSO, 2005).

Após a apresentação dos tipos básicos que utilizaremos, podemos começar


a conversar sobre declaração de variáveis. Assim, para declarar uma variável,
devemos seguir uma das seguintes estruturas:
variavel <tipo> <nome> <− <expressão>
variavel <tipo> <nome> <− <valor>, <nome> <− <expressão>
<tipo> <nome> <− <expressão>
<tipo> <nome>

unitins • análise e desenvolvimento de sistemas • 1º PeRÍodo 27


aula 2 • lógica PaRa PRogRamação

Segundo essas estruturas, todas representando formas válidas para decla-


ração de variáveis, a palavra variavel (sem acento mesmo) é opcional, assim
como a atribuição de um valor inicial para ela.
Exemplos:
variavel real Nota1, Nota2
real Nota1, Nota2
real Nota1 <− 8.2, Nota2
Os três exemplos anteriores servem para declarar a mesma variável. O
primeiro faz uso da palavra reservada variavel (que é opcional) para declarar
uma variável chamada Nota1 e outra chamada Nota2, cujos conteúdos serão
valores pertencentes ao conjunto dos números reais, ainda não atribuídos. O
segundo exemplo faz exatamente o mesmo que o primeiro. Apenas não usa a
palavra reservada variavel, uma vez que é opcional. Por fim, o terceiro exemplo
não usa o termo variavel e declara uma variável de nome Nota1, do tipo real,
que já é criada contendo o valor 8.2, e outra de nome Nota2, também do tipo
real, para a qual não foi atribuído um valor inicial.
Como visto, podemos declarar uma, duas ou mais variáveis de um mesmo
tipo simultaneamente, bastando separar os nomes com vírgulas. Da mesma
forma, podemos ou não, inicializar a variável já contendo um valor.
Já para declararmos constantes, o processo é um pouco mais rígido. A
palavra constante deve estar no início da declaração (caso contrário, será consi-
derada como uma variável) e é obrigatória a atribuição de um valor na hora
da declaração. A figura seguinte apresenta as estruturas de declaração de cons-
tantes usadas no Portugol IDE.
constante <tipo> <nome> <− <valor>
constante <tipo> <nome> <− <expressão>
constante <tipo> <nome> <− <valor>, <nome> <− <expressão>
Dessa forma, poderíamos ter como exemplos de declaração de constantes,
as seguintes situações:
Exemplos:
constante real PI <− 3.14
constante inteiro meses <− 12
Atente para o fato de o conteúdo das constantes não poder ser alterado
durante a execução do pseudocódigo.

2.2.2 Comandos de leitura e escrita


Para podermos finalmente implementar um pequeno algoritmo, necessitamos
conhecer os comandos para leitura de dados informados pelo usuário e para
exibição de resultados ou acompanhamento do andamento de execução em tela.

28 1º PeRÍodo • análise e desenvolvimento de sistemas • unitins


aula 2 • lógica PaRa PRogRamação

Para escrita (exibição em tela), usaremos o comando escrever, seguido pela


expressão, texto (entre aspas) ou uma combinação de ambos, devendo cada
elemento ser separado por vírgula. Ou seja, esse comando escreve texto, vari-
áveis, constantes ou expressões no console, sendo que podem ser escritos (ou
exibidos) vários elementos com o mesmo comando, desde que separados por
vírgulas (MANSO, 2005).
Sintaxe:
escrever <variável>
escrever <constante>
escrever <”texto”>
escrever <expressão>
escrever <variável>, <”texto”>, <expressão>, . . .
Para uso no Portugol IDE, existem três símbolos predefinidos, que podem ser
utilizados em conjunto com o comando escrever, sempre dentro de aspas:
• \n – insere uma mudança de linha (enter)
• \t – insere uma tabulação
• \” – exibe o caractere aspas (“)

Figura 2 Comandos pré-definidos para manipulação de texto no Portugol IDE.

Para leitura, é utilizado o comando ler, seguido do nome da variável que


receberá o valor informado pelo usuário. Esse comando solicita a introdução
de valores para as variáveis por meio do console. É possível definir a leitura de
várias variáveis no mesmo comando, desde que estas estejam separadas por
vírgulas (,). A leitura de uma variável deve ser precedida da sua declaração e
os valores introduzidos para cada variável devem ser compatíveis com o tipo
definido na declaração da mesma (MANSO, 2005).

unitins • análise e desenvolvimento de sistemas • 1º PeRÍodo 29


aula 2 • lógica PaRa PRogRamação

Sintaxe:
ler <variavel>
ler <variavel_1>, <variavel_2>, ... , <variavel_n>
Vejamos agora alguns pequenos exemplos que ajudarão a compreender
esses conceitos.
O exemplo da figura a seguir apresenta um pequeno algoritmo, sem neces-
sidade de declaração de variáveis, pois não faz uso de nenhum dado adicional
além do literal “Olá mundo!” após o comando escrever.

Figura 3 Exemplo do comando escrever em pseudocódigo.

A primeira linha do pseudocódigo não será executada, pois se trata de um


comentário sobre o algoritmo. Só temos uma única linha de comando dentro do
bloco principal, demarcado pelas palavras reservadas início e fim.
O comando escrever, quando executado, apresentará na tela a frase Olá
mundo!, tal como foi descrita entre aspas. Esse exemplo é exibido na interface
do Portugol IDE, demonstrando o resultado de sua execução na parte inferior
denominada ecran, correspondente a monitor, no português falado no Brasil.
Como o Portugol IDE é uma versão em português do Portugal, encontraremos
algumas pequenas diferenças de linguagem.
O segundo exemplo trabalha com a solicitação de um dado para o usuário,
nesse caso, o nome, e posterior exibição desse dado na tela.

Figura 4 Algoritmo solicitando ação do usuário – comando ler.

30 1º PeRÍodo • análise e desenvolvimento de sistemas • unitins


aula 2 • lógica PaRa PRogRamação

Figura 5 Resultado final da execução do pseudocódigo.

Nesse caso, a primeira linha do pseudocódigo foi utilizada para inserir um


comentário sobre o algoritmo e, dentro do bloco principal, temos quatro linhas
de instruções. A primeira realiza a declaração de uma variável do tipo texto
chamada nome. A segunda linha apresenta uma mensagem na tela, solicitando
a digitação de um nome. A terceira linha se encarrega de armazenar (ler) o
nome digitado dentro da variável nome; e, finalmente, a quarta linha escreve
na tela o literal Olá seguido do conteúdo da variável nome, o que nesse caso
resultou na frase Olá Pedro da Silva.
Agora, finalmente vamos rever o exemplo de cálculo da média visto na primeira
aula. Mas dessa vez entendendo bem o que é realizado pelo algoritmo.

Figura 6 Pseudocódigo para calcular a média de duas notas.

No exemplo ilustrado na figura anterior, temos um algoritmo para o cálculo da


média de duas notas. Dentro do bloco principal, temos, inicialmente, a declaração
de três variáveis do tipo real (n1, n2 e media). Por que são do tipo real e não inteiros?

unitins • análise e desenvolvimento de sistemas • 1º PeRÍodo 31


aula 2 • lógica PaRa PRogRamação

Simples... As notas podem apresentar frações e, se utilizássemos o tipo inteiro, esses


valores fracionários seriam desconsiderados, gerando cálculos incorretos.
Após a declaração das variáveis, o algoritmo solicita a digitação da primeira
nota, que será armazenada na variável n1 (ler n1) e, logo em seguida, solicita
a digitação da segunda nota, a qual será armazenada na variável n2 (ler n2).
Na linha seguinte, utilizamos o operador de atribuição (<−), fazendo com que o
resultado do cálculo (n1 + n2)/2 seja armazenado (atribuído) à variável media –
sem acento mesmo... Lembre-se de evitar o uso de caracteres especiais, a menos
que seja em literais (dentro de aspas), pois nem todas as linguagens aceitam
acentuação e caracteres como ç e ~ para composição de nomes de variáveis
e constantes. Assim chegamos ao final de mais uma aula, na qual abordamos
conceitos básicos para iniciar a construção dos nossos algoritmos. Nas aulas
seguintes o conteúdo ficará cada vez mais interessante.

Conhecemos os operadores básicos para a construção de expressões neces-


sárias para a implementação dos algoritmos. Foram abordados os operadores
matemáticos e sua representação simbólica adaptada para uso nos algoritmos.
Além dos operadores matemáticos, utilizados para realização de cálculos, estu-
damos também os operadores lógicos “ou”, “e” e “não”, úteis na hora de cons-
truir expressões lógicas para definição de condições nas estruturas algorítmicas.
E, por último, vimos os operadores relacionais, que servem para realizarmos
comparações entre diferentes valores ou expressões.
Após os tipos de operadores, vimos a estrutura básica de um algoritmo em
pseudocódigo, a forma de declaração de variáveis e constantes, para a qual é
recomendado que seja implementada sempre no início do algoritmo, de forma a
facilitar a localização; e, finalmente, foram apresentados os comandos de leitura
(ler) e escrita (escrever), apresentando por meio de exemplos em pseudocódigo,
a sua forma de uso.

1. Classifique como (V) (verdadeira) ou (F) (falsa), cada uma das afirmações a
seguir, selecionando a alternativa que representa a seqüência correta.
( ) Com operadores é possível construir expressões, assim como na mate-
mática. A complexidade de uma expressão é determinada pela quanti-
dade de operadores e termos (variáveis ou valores constantes).
( ) Os operadores são, na prática, instruções especiais pelas quais incre-
mentamos, decrementamos, comparamos e avaliamos dados dentro de
um programa de computador.

32 1º PeRÍodo • análise e desenvolvimento de sistemas • unitins


aula 2 • lógica PaRa PRogRamação

( ) O resultado das operações aritméticas de uma expressão independe da


ordem na qual os operadores são processados.

a) F, V, V c) V, F, F
b) V, V, F d) F, F, F

2. Na resolução de expressões aritméticas, existem operações prioritárias e


isso indica a ordem em que as operações deverão ser realizadas. Sobre
expressões aritméticas, assinale a alternativa correta, com base no resultado
da expressão a seguir.
45 / 5 * 3 ^ 2 – 3 * 2 + 10

a) 85 c) 733
b) 5 d) 46

3. O que caracteriza um algoritmo de estrutura puramente seqüencial? Escreva


um texto de cinco a dez linhas discorrendo sobre o assunto.

4. Escreva um algoritmo seqüencial que leia dois valores, armazenando-os


em duas variáveis A e B, respectivamente. A seguir, apresente em tela o
quadrado do primeiro valor lido (sem alterar o valor contido em A) e o resto
da divisão inteira de A por B.

As atividades um e dois, ajudaram você a atingir o objetivo de reconhecer


os operadores básicos para a construção de expressões. Assim, para a ativi-
dade um a alternativa (b) é a resposta correta, uma vez que a primeira afir-
mação é verdadeira, já que quanto mais operadores e termos uma expressão
tiver, mais complexa ela será. A segunda afirmação também é verdadeira, já
que os operadores são utilizados para várias funções dentro da programação.
Por fim, a terceira afirmação é falsa, pois o resultado de uma expressão depende
da ordem na qual os operadores são processados.
Na atividade dois, a resposta correta é a alternativa (a), porque, de acordo com
a hierarquia dos operadores, primeiro irá ser calculada a exponenciação 3^2, já
que tem peso maior do que as outras operações. Em seguida, será calculado o que
vier primeiro (da esquerda para a direita) a divisão ou multiplicação, que nesse caso
é a divisão de 45/5. Logo após, multiplica-se o resultado da exponenciação 3^2
pela divisão de 45/5 e, em seguida, subtrai-se esse valor do resultado da multipli-
cação de 3*2. Por fim, soma-se esse último resultado com 10, obtendo o valor 85.
As atividades três e quatro, visaram ajudar você a alcançar o objetivo de ser
capaz de utilizar os comandos básicos de entrada e saída para implementação de
algoritmos seqüenciais. Em resposta à atividade três, podemos afirmar que, com

unitins • análise e desenvolvimento de sistemas • 1º PeRÍodo 33


aula 2 • lógica PaRa PRogRamação

as instruções e operadores abordados até o presente momento (operadores lógico-


matemáticos, comandos de leitura (ler) e escrita (escrever), operador de atribuição),
só é possível construir algoritmos puramente seqüenciais, ou seja, que executam os
comandos de forma seqüencial, na respectiva ordem em que estão escritos no pseu-
docódigo, não havendo formas de realizar desvios ou retornos dentro da estrutura.
O algoritmo resultante da atividade quatro, deve ficar parecido com:
inicio
inteiro A , B
escrever “Digite o primeiro valor:”
ler A
escrever “Digite o segundo valor:”
ler B
escrever “A ^ 3 =”, A ^ 3, “\n”
escrever “Resto de B por A = “, B % a
fim

Como pode ser observado nesse pseudocódigo, são declaradas as duas


variáveis A e B do tipo inteiro. Posteriormente, são atribuídos valores informados
pelo usuário a cada uma delas. O cálculo de A ^ 3 é realizado diretamente na
linha de comando escrever “A ^ 3 = ”, A ^ 3, “\n”, a qual é dividida em três
partes: o literal “A ^ 3 = ”, que escreve essa expressão na tela; a expressão
A ^ 3, que calcula o valor a ser exibido; a expressão “\n”, que gera uma quebra
de linha no texto apresentado. O resultado do cálculo é obtido sem necessidade
de atribuição ou alteração de conteúdo de alguma variável. Se fosse necessária
a utilização desse resultado em instruções posteriores, seria conveniente que ele
fosse armazenado em uma variável de forma a não ter de ser novamente calcu-
lado. Processo semelhante é utilizado para exibição do resultado de B%A, dife-
rindo apenas pelo fato de não ter quebra de linha no final da instrução (“\n”).

MANSO, Antônio. Software: Portugol IDE – simulador de linguagem algorítmica.


Portugal: Instituto Politécnico de Tomar, 2005.

Apresentaremos duas novas estruturas: estrutura de seleção simples e estru-


tura de seleção composta, também denominadas de desvio condicional simples e
composto ou, simplesmente, se simples e se composto. Como você poderá observar,
são estruturas muito importantes para a construção de sistemas computacionais.
Aproveite para estudar esse conteúdo antes da próxima aula. Você notará que a
compreensão na hora da explicação dos professores será muito mais produtiva.

34 1º PeRÍodo • análise e desenvolvimento de sistemas • unitins


aula 2 • lógica PaRa PRogRamação

Aula 3
Estrutura de seleção simples
e composta

Esperamos que, ao final desta aula, você seja capaz de:


• compreender o uso do desvio condicional simples;
• entender a aplicabilidade do desvio condicional composto.

Pelas características específicas da disciplina, o conteúdo para o aprendi-


zado de cada novo conteúdo é cumulativo. Ou seja, para a perfeita compreensão
de cada nova aula, você deve ter absorvido adequadamente o conteúdo visto
nas aulas anteriores. Assim, para compreensão de desvio condicional simples e
composto, deve estar bem assimilado o conteúdo das aulas anteriores.

Na aula passada, aprendemos a desenvolver algoritmos seqüenciais, ou


seja, pseudocódigos nos quais todas as instruções são executadas seqüencial-
mente, sem interrupções, desvios ou retornos.
Como vimos, já é possível resolver alguns tipos de problemas (poucos) com a
estrutura puramente seqüencial. Mas apenas com comandos de leitura, escrita e
atribuição ficamos bastante limitados para resolver problemas de maior comple-
xidade. Isso porque, no mundo real, deparamo-nos seguidamente com situações
em que devemos tomar decisões e, com base nessas decisões, optar por dife-
rentes caminhos para solução de um problema.
Nesta aula, você aprenderá a fazer desvios dentro do algoritmo, de forma a
poder decidir o rumo que o pseudocódigo seguirá durante sua execução.

3.1 Desvio condicional simples


O desvio condicional simples (ou estrutura de seleção simples, ou apenas se
simples) é uma estrutura de seleção que, com base em um teste lógico, permite
optar pela execução ou não de um determinado trecho do código.

unitins • análise e desenvolvimento de sistemas • 1º PeRÍodo 35


aula 2 • lógica PaRa PRogRamação

Analise a sintaxe e a representação por meio de fluxograma dessa estrutura


na figura seguinte.

Quadro 1 Sintaxe e fluxograma do desvio condicional simples.

SINTAXE EM PSEUDOCÓDIGO FLUXOGRAMA

Por exemplo, imagine o problema de cálculo da média de um aluno, apre-


sentado na aula anterior. Se você desejasse que o algoritmo exibisse uma
mensagem parabenizando pela aprovação (apenas em caso de aprovação),
isso não seria possível apenas com os comandos lá utilizados.

Contudo, utilizando o desvio condicional simples, essa é uma tarefa extrema-


mente fácil. Vejamos como ficaria o pseudocódigo no Portugol IDE para resolver
esse problema com a inclusão dessa nova estrutura de seleção.

Figura 1 Exemplo de desvio condicional simples.

36 1º PeRÍodo • análise e desenvolvimento de sistemas • unitins


aula 2 • lógica PaRa PRogRamação

Executando esse algoritmo, poderemos verificar que a mensagem Parabéns!


Você foi aprovado!!, só será exibida se a média calculada atender a condição
proposta no desvio condicional, ou seja, se a média obtida for maior ou igual a seis.
Caso a média seja inferior a seis, a seqüência de instruções contida no desvio condi-
cional não será executada, prosseguindo a execução do algoritmo após o fimse.
Vejamos mais um exemplo. Suponhamos que você precise desenvolver um
algoritmo que solicite a digitação do nome e idade de uma pessoa e, após isso,
caso a idade seja maior ou igual 18 anos, exiba uma mensagem informando
que a pessoa (citar o nome) já atingiu a maioridade.
Como resolveríamos esse problema? Muito simples. Necessitaremos de uma
variável do tipo texto para armazenar o nome, e uma do tipo inteiro para arma-
zenar a idade informada. O algoritmo deve então solicitar esses dados ao usuário
e, após armazenados nas respectivas variáveis, deve realizar um desvio condi-
cional testando se a idade é maior ou igual a 18. Se for, deve escrever o nome
contido na variável do tipo texto, acompanhado de um texto adicional (literal),
informando que atingiu a maioridade. Caso contrário, o algoritmo deve finalizar.
Segue um exemplo da implementação. Veja na figura.

Figura 2 Exemplo de desvio condicional simples.

3.2 Desvio condicional composto


Como você pôde observar, no desvio condicional simples é avaliada uma
condição e, caso ela seja verdadeira, é executada a lista de comando internos
dessa estrutura. Caso o resultado da avaliação seja falso, é ignorada a seqüência
de comandos e o algoritmo prossegue normalmente a execução das instruções
existentes após esse desvio condicional (após o fimse). Ou seja, a execução dos
comandos internos à estrutura condicional simples podem ou não ser executados.

unitins • análise e desenvolvimento de sistemas • 1º PeRÍodo 37


aula 2 • lógica PaRa PRogRamação

No desvio condicional composto (ou estrutura condicional composta, ou se


composto), temos a possibilidade de dar duas opções de execução: uma se
a condição for verdadeira e outra se a condição for falsa. Logo sempre será
obrigatoriamente executado um dos conjuntos de instruções da estrutura. Analise
a sintaxe a seguir e você poderá entender melhor esse conceito.

Quadro 2 Sintaxe e fluxograma do desvio condicional composto.


SINTAXE EM PSEUDOCÓDIGO FLUXOGRAMA

Dessa forma, no desvio condicional composto, se a condição for verdadeira,


então será executado somente o primeiro bloco de comandos da estrutura. Senão,
será executado apenas o segundo bloco de comandos. Após a execução de um
dos blocos de comandos, o algoritmo prosseguirá sua execução normal a partir
da primeira linha de instruções logo após o fimse. Simples, não é?
Vamos incrementar um pouco mais o nosso algoritmo para cálculo da média,
convertendo o desvio condicional simples em composto, de forma que o algo-
ritmo informe a aprovação ou o não atingimento de média por parte do aluno.
Vejamos como ficaria o pseudocódigo na figura seguinte.

Figura 3 Exemplo de desvio condicional composto.

38 1º PeRÍodo • análise e desenvolvimento de sistemas • unitins


aula 2 • lógica PaRa PRogRamação

Agora já é possível desenvolver algoritmos para solucionar problemas um


pouco mais complexos, que exijam diferentes ações, conforme avaliações reali-
zadas sobre os dados no decorrer do programa.
Vamos exercitar mais um pouco, acompanhando o raciocínio para resolver
os problemas a seguir.
Problema um: implementar um algoritmo que solicite a digitação de um valor
inteiro, e informe se esse valor é par ou ímpar.

Figura 4 Exemplo de desvio condicional composto.

Problema dois: implementar um algoritmo que solicite a digitação de dois


números e, após isso, se são iguais ou se um deles é maior do que o outro.

Figura 5 Exemplo de desvio condicional simples.

unitins • análise e desenvolvimento de sistemas • 1º PeRÍodo 39


aula 2 • lógica PaRa PRogRamação

Problema três: implementar um algoritmo que permita jogar Par ou Ímpar


contra o computador, seguindo as seguintes regras:
• o computador solicita a entrada de um número inteiro pelo usuário e,
após isso, informa um número aleatório de 0 a 5;
• o computador vencerá sempre que a soma dos números informados por
ele e pelo usuário resultarem em um número par;
• o jogador humano vencerá sempre que a soma dos números informados
por ele e pelo computador resultarem em um número ímpar;
• após o lançamento dos dois números, o algoritmo deve realizar os
cálculos e informar o vencedor.

Figura 6 Exemplo de desvio condicional composto.

Claro como a água? Não? Então vamos explicar cada linha do bloco prin-
cipal para que não fique nenhuma dúvida.
Iniciamos com a declaração de três variáveis. Uma para armazenar o valor
informado pelo jogador humano, outra para o número do computador, e uma
terceira para armazenar a soma dos dois primeiros.
inteiro humano , computador , total
As duas linhas seguintes apresentam uma mensagem na tela solicitando que o
jogador humano informe um número inteiro, armazenando-o na variável humano.
escrever “Digite um número inteiro: ”
ler humano
Após isso, é a vez de o computador escolher seu lançamento, que é reali-
zado de forma aleatória. Para isso, vamos utilizar duas funções predefinidas no
portugol IDE:

40 1º PeRÍodo • análise e desenvolvimento de sistemas • unitins


aula 2 • lógica PaRa PRogRamação

• aleatorio() – função utilizada para gerar um número aleatório do tipo Real,


compreendido entre 0.0 e 1.0 (inclusive). Como é uma função sem argu-
mento, nada deve ser informado entre os parênteses que a compõe. Como
a função gerará números Reais compreendidos no intervalo de 0.0 a 1.0
(ex.: 0.0, 0.01, 0.2, 0.5, 0.9, 1.0) e necessitamos de valores de 0 a 5,
multiplicaremos o resultado da chamada da função aleatorio() por 5, uma
vez que o menor número possível é 0.0, que multiplicado por 5 continuaria
sendo 0.0, e o maior número possível é 1.0, o qual multiplicado por 5
resulta em 5.0. Dessa forma, o conjunto exemplificado anteriormente teria
sua representação multiplicada por 5 (ex.: 0.0, 0.05, 1.0, 2.5, 4.5, 5.0);
• int() – função utilizada para retornar à parte inteira de um número Real. É
uma função que necessita de um argumento, ou seja, o valor a ser conver-
tido deve ser passado entre os parênteses dessa função. Fazendo isso com
o número gerado aleatoriamente pelo o computador, teríamos apenas a
parte inteira do exemplo anterior (ex.: 0, 0, 1, 2, 4, 5), ou seja, números
inteiros entre 0 e 5, como solicitado no enunciado do problema.
Utilizando essas duas funções existentes no Portugol IDE (também existentes
na grande maioria das linguagens de programação), podemos atribuir um valor
inteiro de 0 a 5, escolhido ao acaso (aleatoriamente) pelo computador.

Figura 7 Instruções para gerar um valor aleatório entre 0 e 5.

Nas linhas seguintes, o algoritmo exibe o número aleatório gerado e arma-


zenado na variável computador; atribui à variável total o resultado da soma
do conteúdo da variável humano com a variável computador e exibe em tela o
conteúdo atual da variável total, respectivamente.
escrever “Eu escolhi ” , computador
total <- humano + computador
escrever “\nO total é ” , total

Bom... Agora basta verificar se o conteúdo da variável total é par ou ímpar


para definir quem ganhou o jogo e qual a mensagem que deve ser exibida na

unitins • análise e desenvolvimento de sistemas • 1º PeRÍodo 41


aula 2 • lógica PaRa PRogRamação

tela. Isso é feito de forma bem simples, dentro de um desvio condicional composto
no qual a condição verificará se o resto da divisão (%) do valor contido em total
por 2 é 0. Se o resto for 0, significa que o valor é par. Senão, só poderá ser
ímpar. Temos então:
se total % 2 = 0 entao
escrever “\nPAR – Ganhei! É a superioridade da máquina!!”
senao
escrever “\nÍMPAR – Parabéns! Você ganhou.”
fimse

Pois é. A explicação é muito mais extensa do que a real dificuldade do


problema. Mas, certamente, você deve ter compreendido bem o funcionamento
das estruturas de seleção simples e composta. Não deixe de realizar as ativi-
dades propostas para uma melhor fixação desse conteúdo.

Nesta aula, compreendemos a diferença básica entre as estruturas de


seleção simples e compostas. A simples permite uma opção de desvio dentro do
pseudocódigo, caso a sua condição lógica seja verdadeira. Já a composta abre
uma possibilidade adicional, permitindo dois caminhos diferentes, no caso de
validação ou não da sua condição lógica.

1. Na seleção simples, uma instrução ou um conjunto de instruções é execu-


tado somente se o teste condicional especificado retornar o valor verda-
deiro. Por outro lado, na seleção composta, se o teste for verdadeiro, um
trecho do algoritmo é executado e, se falso, outro trecho será executado.
Adicionalmente, uma instrução de seleção pode ser inserida dentro da outra,
formando uma estrutura de seleção encadeada. Nesse contexto, analise o
algoritmo a seguir e assinale a alternativa que indica o que será escrito
como saída em tela.

inicio
inteiro x<-4,y<-2,z<- -3
real resultado
resultado <- (x%2)*z^3
se resultado < 0 entao
escrever “CONDIÇÃO 1”
senao
se resultado > 0 entao

42 1º PeRÍodo • análise e desenvolvimento de sistemas • unitins


aula 2 • lógica PaRa PRogRamação

escrever “CONDIÇÃO 2”
senao
escrever “CONDIÇÃO 3”
fimSe
fimSe
fim

a) Condição 1

b) Condição 2

c) Condição 3

d) Nenhuma das alternativas anteriores

2. Quando algoritmos são criados, algumas vezes há necessidade de


controlar a ordem em que as instruções deverão ser executadas pelo
computador de modo a solucionar um problema. Para permitir que o fluxo
de execução seja controlado, devemos utilizar as estruturas de controle.
Sobre fluxo de execução, leia as afirmativas a seguir e assinale a alterna-
tiva correta.
I. Na estrutura seqüencial, os comandos de um algoritmo são executados
em uma seqüência pré-estabelecida, ou seja, cada comando é execu-
tado somente após o término do comando anterior.
II. Na estrutura de decisão (desvio condicional), são comuns situações em
que uma instrução, ou conjunto de instruções, devam ser executados
sempre para situações verdadeiras e falsas.
III. Na estrutura de repetição, uma seqüência de comandos deverá ser
executada obrigatoriamente uma ou várias vezes de acordo com uma
condição.

a) Somente as afirmativas I e II são verdadeiras.


b) Somente a afirmativa II é falsa.
c) Somente a afirmativa III é verdadeira.
d) Somente as afirmativas II e III são falsas.

3. Qual a diferença básica entre os desvios condicionais simples e compostos?


Elabore uma resposta com cinco a dez linhas.

4. Tudo o que é feito por um desvio condicional composto pode ser represen-
tado utilizando desvios condicionais simples? Elabore uma resposta com
cinco a dez linhas.

unitins • análise e desenvolvimento de sistemas • 1º PeRÍodo 43


aula 2 • lógica PaRa PRogRamação

Todas as atividades aqui apresentadas contemplam, em conjunto, os objetivos


inicialmente propostos de compreender o uso do desvio condicional simples e
entender a aplicabilidade do desvio condicional composto. A resposta para a ativi-
dade um é a alternativa (c). Para resolver essa atividade, é necessário interpretar o
algoritmo. Inicialmente, são definidas três variáveis do tipo inteiro, onde x=4, y=2
e z=3. Na terceira linha, é declarada uma variável do tipo real com o nome resul-
tado (que armazenará o resultado do processamento). Na quarta linha, a variável
resultado recebe o resultado da equação (x % 2) * z ^ 3. Conhecendo os valores
de x e z, podemos reescrever a equação para (4 % 2) * –3 ^ 3. Agora, para
encontrar o resultado, devem-se realizar as operações aritméticas da expressão
obedecendo a suas prioridades. Primeiro calcula-se 4 % 2 (o resto da divisão de 4
por 2), que é igual a 0 (zero). Na seqüência, a operação –3 ^ 3 (3 elevado a 3),
que é igual a –27. Por fim, a multiplicação 0 * –27, que é igual a 0 (zero). Assim a
variável resultado recebe o valor 0 (zero). Na quinta linha, verifica-se se resultado
é menor que 0 (zero), o que é falso. Assim, segue para a linha sete e oito, em que
se verifica se a variável resultado tem valor maior que 0 (zero), o que também é
falso. Segue a execução do algoritmo para a linha 10 e 11, escrevendo em tela
“CONDIÇÃO 3”. Com isso, temos que a resposta correta é a alternativa (c). Essa
reposta pode ser verificada colocando o algoritmo no Portugol IDE.
Para a atividade dois, a resposta é a alternativa (d). Isso porque a afir-
mativa (I) é verdadeira, pois como o próprio nome diz, estrutura seqüencial
obedece a uma seqüência linear de execução. Já na afirmativa (II), sabemos
que um teste condicional é baseado em lógica convencional e, portanto, deve
resultar em um valor verdadeiro ou falso. Repare que nessa afirmativa não é
especificado qual o tipo de desvio condicional, ou seja, a afirmação genera-
liza para todos os tipos. Contudo, na seleção simples, uma instrução ou um
conjunto de instruções é executado somente se o teste condicional especifi-
cado retornar o valor verdadeiro. Adicionalmente, na seleção composta, as
instruções contidas nos desvios condicionais devem ser executadas sempre
para situações verdadeiras ou falsas. O que torna a afirmativa (II) incorreta.
A afirmativa (III) também é falsa, pois uma seqüência de comandos pode ser
executada nenhuma, uma ou várias vezes,
Na atividade três, o desvio condicional simples (ou apenas se simples), é
uma estrutura de seleção que, com base em um teste lógico, permite optar pela
execução (se a condição for verdadeira) ou não de um determinado trecho do
código (opção única), enquanto que, no desvio condicional composto (ou se
composto), temos a possibilidade de dar duas opções de execução: uma, se a
condição for verdadeira; e outra, se a condição for falsa. Logo sempre será obri-
gatoriamente executado um dos conjuntos de instruções da estrutura.

44 1º PeRÍodo • análise e desenvolvimento de sistemas • unitins


aula 2 • lógica PaRa PRogRamação

Por fim, na atividade quatro, podemos realizar todas as operações feitas


por um desvio condicional compostos mediante utilização de duas estruturas de
desvio simples, diferindo apenas no gasto computacional, que é superior com a
utilização de desvio simples nesses casos. Você deve observar que, uma vez que
no desvio composto a análise da condição é feita uma única vez para toda a
estrutura, ao substituir um desvio composto por dois desvios simples, a condição
passará a ser avaliada em cada uma das duas estruturas isoladas.

E então? Não está tão difícil, não é mesmo? Agora que você já domina as
estruturas de seleção simples e compostas, poderá verificar como aumenta seu
poder quando trabalharmos com essas estruturas encadeadas (ou aninhadas),
permitindo criar estruturas de decisão muito mais complexas e úteis. Não se
esqueça de revisar esta aula e de dar uma boa olhada no material da próxima
para facilitar o aprendizado. Até lá!

Anotações

unitins • análise e desenvolvimento de sistemas • 1º PeRÍodo 45


aula 2 • lógica PaRa PRogRamação

46 1º PeRÍodo • análise e desenvolvimento de sistemas • unitins


aula 4 • lógica PaRa PRogRamação

Aula 4
Estrutura de seleção encadeada

Esperamos que, ao final desta aula, você seja capaz de:

• compreender a aplicabilidade das estruturas de seleção encadeadas;

• entender a lógica para implementação de uma estrutura de seleção com


múltipla escolha.

Entendimento das estruturas de seleção simples e compostas é essencial para


a compreensão das estruturas de seleção encadeada e das estruturas de seleção
com múltipla escolha. Se ainda tiver dúvidas, retome seu material e estude! Não
siga em frente sem esse entendimento.

Estamos quase concluindo as estruturas de seleção. Só falta conhecermos


a estrutura de seleção encadeada e, por fim, dar uma espiada na estrutura de
seleção com múltipla escolha.

Após esta aula, você já terá conhecimento para desenvolver algoritmos com
um grau de complexidade maior, e poderemos avançar para outro tipo de estru-
turas de grande importância ao desenvolvimento de sistemas.

Comecemos conversando um pouco sobre a técnica de seleção encadeada.

4.1 Estrutura de seleção encadeada


A estrutura de seleção encadeada, também conhecida como desvio condi-
cional encadeado, se encadeado ou se aninhado, nada mais é do que uma estru-
tura lógica composta por duas ou mais estruturas de desvio condicional (simples
ou compostas), uma dentro da outra.

unitins • análise e desenvolvimento de sistemas • 1º PeRÍodo 47


aula 4 • lógica PaRa PRogRamação

Lembra do problema dois da aula anterior (aula três)? Como não havíamos
explicado ainda o se aninhado, resolvemos com três se simples. Mas será que
essa era a melhor forma de resolver esse problema? Veja e analise o exemplo a se-
guir, dessa vez resolvido com estrutura condicional encadeada (se encadeado).

Figura 1 Exemplo de desvio condicional encadeado.

Se prestar atenção, notará que há claramente duas estruturas condicionas


compostas. Uma mais externa (1) e a outra dentro do espaço reservado às instru-
ções que serão executadas no bloco do senão (2).
Se você comparou com algoritmo da aula anterior, já deve ter notado uma
diferença na execução: enquanto no primeiro algoritmo, com três estruturas de se
simples, mesmo que os valores fossem iguais, o que seria verificado no primeiro
teste, seriam realizados os outros dois testes. Ou seja, independentemente da
execução do conteúdo de um dos desvios condicionais, os outros dois teriam
seus testes executados, mesmo sabendo que o resultado para eles seria falso, o
que representa desperdício de recursos computacionais e conseqüente aumento
do tempo de execução do algoritmo.
Em contrapartida, no exemplo que utiliza a estrutura encadeada, assim que
um dos três testes seja validado, a estrutura condicional encadeada encerra
ignorando os demais. Assim, na melhor das hipóteses, só será realizado um
teste e, na pior, serão realizados dois testes; enquanto que, com o uso de três
estruturas simples, teríamos sempre a realização dos três testes.

48 1º PeRÍodo • análise e desenvolvimento de sistemas • unitins


aula 4 • lógica PaRa PRogRamação

Vejamos outro exemplo. Suponhamos que temos de desenvolver um algo-


ritmo para classificar um grupo de atletas para uma competição de natação.
Assim os competidores teriam de ser classificados conforme sua faixa etária, em
diferentes categorias, conforme segue:
• infantil I = de 5 a 7 anos
• infantil II = de 8 a 10 anos
• juvenil I = de 11 a 13 anos
• juvenil II = de 14 a 17 anos
• adulto = maiores de 18 anos (idade máxima para participar = 22 anos)
A estrutura resultante do nosso exemplo é o que chamamos de estrutura de
decisão encadeada homogênea, pois pode ser facilmente identificado, de forma
visual, um padrão na sua construção.
Analise bem o pseudocódigo, testando com diversos valores para a variável
idade, de forma a compreender a lógica e o funcionamento do mesmo.

Figura 2 Exemplo de desvio condicional encadeado homogêneo.

unitins • análise e desenvolvimento de sistemas • 1º PeRÍodo 49


aula 4 • lógica PaRa PRogRamação

Assim como temos as estruturas de decisão encadeadas homogêneas,


existem também as heterogêneas – estruturas nas quais não é possível visualizar
um padrão. Veja o exemplo a seguir.
Problema: implementar um algoritmo que solicite ao usuário a idade, o sexo
e se tem ou não disponibilidade para viajar a trabalho. Inicialmente, o algo-
ritmo deve testar se a pessoa tem mais de dezoito anos. Em caso positivo,
se a pessoa for do sexo masculino, deverá exibir uma informação na tela
avisando que a pessoa será alocada na filial 1 e, se tiver disponibilidade
para viajar, trabalhará como representante comercial. Se não tiver disponi-
bilidade para viajar, deve ser informada sua função como assistente admi-
nistrativo. Se for do sexo feminino e com disponibilidade para viajar, o algo-
ritmo deve informar a função de gerente de divulgação. Se não apresentar
disponibilidade para viagens, atuará como assistente administrativo. No
caso dos homens, se forem casados, só poderão atuar como representantes
comerciais regionalmente. Caso contrário, poderão atuar nacionalmente.
Caso a idade seja inferior a 18 anos e superior ou igual a 14 anos, a
pessoa só estará apta para o programa de estágio em vendas (para o sexo
masculino) ou em divulgação (para o sexo feminino). No caso do estagiário
de sexo masculino, eventualmente poderá realizar viagens regionais.
Muita informação junta? Vá se acostumando! Um dos requisitos para um bom
analista e desenvolvedor é a boa capacidade de interpretação. Isso é fundamental
para poder realizar a implementação de um sistema da forma adequada.
Inicialmente, você deve identificar os dados de entrada necessários para o
funcionamento do algoritmo. Nesse caso são a idade, o sexo, a disponibilidade
para viajar e o estado civil. Ou seja, uma variável do tipo inteiro que denominaremos
de idade e três variáveis do tipo texto, que nomearemos como sexo, disp e estCiv.
Agora basta seguir as instruções dadas no texto do problema, atentando
para cumprir todos os requisitos necessários. No final, você deverá ter alguma
coisa semelhante com o pseudocódigo a seguir, o qual, como você poderá
observar, não apresenta um padrão visual. Isso o caracteriza como uma estru-
tura de decisão encadeada heterogênea.

Figura 3 Exemplo de desvio condicional encadeado heterogêneo.


// Exemplo 12 – Estrutura heterogênea
inicio
texto sexo , disp , estciv
inteiro idade
escrever “Digite a idade: ”
ler idade
escrever “Digite o sexo (M/F): ”
ler sexo

50 1º PeRÍodo • análise e desenvolvimento de sistemas • unitins


aula 4 • lógica PaRa PRogRamação

escrever “Tem disponibilidade para viajar (S/N): ”


ler disp
escrever “Digite o estado civil(C/S): ”
ler estciv

se idade >= 18 entao


se sexo = “M” ou sexo = “m” entao
escrever “\nAlocação: Filial I”
se disp = “s” ou disp = “S” entao
escrever “\nFunção: representante comercial”
se estciv = “s” ou estciv = “S” entao
escrever “\nAtuação: Regional”
senao
escrever “\nAtuação: Nacional”
fimse
senao
escrever “\nFunção: Assistente administrativo”
fimse
senao
escrever “\nAlocação: Filial II”
Se disp = “s” ou disp = “S” entao
escrever “\nFunção: Gerente de divulgação”
senao
escrever “\nFunção: Assistente administrativo”
fimse
fimse
senao
se idade >= 14 entao
escrever “\nAlocação: Filial I”
se sexo = “M” ou sexo = “m” entao
escrever “\nFunção: Estagiário de vendas”
se disp = “s” ou disp = “S” entao
escrever “\nPoderá realizar viagens regionais”
fimse
senao
escrever “\nFunção: Estagiária de divulgação”
fimse
senao
escrever “\nIdade insuficiente para ingresso”
fimse
fimse
fim

unitins • análise e desenvolvimento de sistemas • 1º PeRÍodo 51


aula 4 • lógica PaRa PRogRamação

Para concluir esta aula, temos ainda mais uma estrutura bastante útil em
determinadas situações. Trata-se da estrutura de decisão de múltipla escolha.
Segundo Forbellone e Eberspächer (2005), quando temos um conjunto de
elementos discretos que necessita ser testado e ações diferentes são associadas
a esses valores, estamos diante de uma estrutura de decisão encadeada homo-
gênea do tipo se-senao-se. Como essa situação é bastante comum no desenvolvi-
mento de algoritmos que dependem de alternativas (desvios condicionais), usa-se
uma estrutura específica para esses casos, a seleção de múltipla escolha.
A sintaxe dessa estrutura pode ser representada da seguinte forma:

escolhe <expressão_0>
caso <Expressão_1o>,. . .,<Expressão_1n>:
<instruções>
. . . . . . . . . . .
caso <Expressão_no>,. . .,<Expressão_nn>,:
<instruções>
defeito:
<instruções>
fimescolhe

Veja um exemplo simples no Portugol IDE.

Figura 4 Exemplo de desvio condicional com seleção de múltipla escolha.

Nesse exemplo, você pode verificar que, com base no conteúdo da variável
sexo, a estrutura de seleção com múltiplas escolhas irá comparando o conteúdo

52 1º PeRÍodo • análise e desenvolvimento de sistemas • unitins


aula 4 • lógica PaRa PRogRamação

da variável com o valor apresentado nas opções (caso). Se combinar com alguns
dos valores, será executado o respectivo bloco de comandos. Se não houver
nenhuma equivalência entre as opções apresentadas, será executado o bloco de
comandos padrão (default), no Portugol IDE denominado defeito.

Saiba mais

Vejamos mais um exemplo. Já vimos uma estrutura condicional encadeada


homogênea, quando implementamos o pseudocódigo para distribuir atletas em
determinadas categorias, para uma competição de natação. Lembra? Pois bem...
Implementemos, agora, a solução para esse mesmo problema, só que dessa vez
utilizando a estrutura com múltiplas escolhas.

Figura 5 Exemplo de desvio condicional com seleção de múltipla escolha.


// Exemplo 14 – Competição de Natação
inicio
inteiro idade
escrever “Informe a idade: ”
ler idade
escolhe idade
caso 18 , 19 , 20 , 21 , 22:
escrever “Adulto”
caso 14 , 15 , 16 , 17:
escrever “Juvenil II”
caso 11 , 12 , 13:
escrever “Juvenil I”
caso 8 , 9 , 10:
escrever “Infantil II”
caso 5 , 6 , 7:
escrever “Infantil I”
defeito :
se idade > 22 entao
escrever “Idade acima da permitida”
senao
escrever “idade abaixo da
permitida”
fimse
fimescolhe
fim

unitins • análise e desenvolvimento de sistemas • 1º PeRÍodo 53


aula 4 • lógica PaRa PRogRamação

Analise esse pseudocódigo, comparando com o implementado utilizando a


estrutura de decisão encadeada homogênea vista anteriormente. Repare que os
dois pseudocódigos possuem a mesma funcionalidade, apesar de ter estruturas tão
diferentes.
Efetue testes com o pseudocódigo, alterando os valores iniciais da variável
idade, de forma a compreender perfeitamente seu funcionamento. Com isso encer-
ramos mais uma aula, finalizando a apresentação das estruturas de seleção.

Esta aula apresentou detalhadamente a estrutura de seleção encadeada (ou


aninhada), mostrando sua flexibilidade, a ponto de permitir a implementação de
complexas estruturas de decisão.
Vimos que, a partir da conjugação de estruturas mais simples, como a da
seleção simples e da seleção composta, é possível incrementar o poderio lógico
de um algoritmo para a solução de diversos tipos de problemas do mundo real.
Após a estrutura de decisão encadeada, foi apresentada a estrutura de
decisão com múltiplas escolhas, que permite substituir estruturas de decisão enca-
deadas do tipo homogêneo, possibilitando uma fácil implementação e maior
clareza para a compreensão do algoritmo.

1. Durante a construção de algoritmos, são comuns situações em que uma


instrução, ou conjunto de instruções, deva ser executada somente para uma
determinada situação. Em outros casos mais complexos, dependendo de uma
condição previamente estabelecida, caso essa seja verdadeira, um conjunto
de comandos deverá ser executado e, caso seja falsa, outro conjunto será
executado. Sobre desvio condicional, analise o algoritmo a seguir.

1 início
2 texto nome
3 inteiro sexo, idade
4 escrever “Entre com seus dados\n”
5 escrever “Nome: \n”
6 ler nome
7 escrever “Sexo:\n<1> Masculino\n<2> Feminino”
8 ler sexo
9 escrever “Idade:\n”
10 ler idade
11 se sexo=/=1 e sexo =/=2 entao
12 escrever “Sexo indefinido!\n”

54 1º PeRÍodo • análise e desenvolvimento de sistemas • unitins


aula 4 • lógica PaRa PRogRamação

1 início
2 texto nome
3 inteiro sexo, idade
4 escrever “Entre com seus dados\n”
5 escrever “Nome: \n”
6 ler nome
7 escrever “Sexo:\n<1> Masculino\n<2> Feminino”
8 ler sexo
9 escrever “Idade:\n”
10 ler idade
11 se sexo=/=1 e sexo =/=2 entao
12 escrever “Sexo indefinido!\n”
13 senao
14 se idade>0 entao
15 se sexo = 1 e idade<18 entao
16 escrever “\Bem vindo”,nome,”\nVocê é menor de idade
17 senao
18 se sexo =1 entao
19 escrever \Bem vindo”,nome,”\nVocê é maior de idade
20 senao
21 se sexo = 2 e idade<18 entao
22 escrever “\Bem vinda”,nome,”\nVocê é menor de idade.”
23 senao
24 escrever “\Bem vinda”,nome,”\nVocê é maior de idade.”
25 fimSe
26 fimSe
27 fimSe
28 senao
29 escrever “Você deve entrar com idade maior que zero!”
30 fimSe
31 fimSe
32 fim

Note que as linhas 11 e 15 estão em destaque. Isso porque essas linhas


podem ser substituídas por outros testes sem mudar o funcionamento do
algoritmo. Nesse sentido, assinale a única alternativa em que trocando-se
as linhas destacadas do algoritmo pelas indicadas na alternativa mantém o
algoritmo inalterado.
a) LINHA 11: se sexo < 1 e sexo > 2 entao
LINHA 15: se sexo = 1 e idade > 0 e idade < 18 entao
b) LINHA 11: se sexo < 1 ou sexo > 2 entao

unitins • análise e desenvolvimento de sistemas • 1º PeRÍodo 55


aula 4 • lógica PaRa PRogRamação

LINHA 15: se sexo =/= 2 e idade > 0 ou idade < 18 entao


c) LINHA 11: se sexo < 1 e sexo > 2 entao
LINHA 15: se sexo = 1 e idade > 0 ou idade < 18 entao
d) LINHA 11: se sexo < 1 ou sexo > 2 entao
LINHA 15: se sexo =/= 2 e idade > 0 e idade < 18 entao

2. Analise o algoritmo a seguir, que tenta descrever o funcionamento de uma calcu-


ladora e, em seguida, leia as afirmativas e assinale a alternativa correta.

inicio
real res, n1, n2
texto opcao
escrever “\nDigite a operacao desejada:”
ler opcao
escrever “Digite o primeiro operando:
ler n1
esrever “Digite o segundo operando:”
ler n2
escolhe opcao
caso “+”:
escrever n1+n2
caso “–”:
escrever n1–n2
caso “*”:
escrever n1*n2
caso “/”:
escrever n1/n2
defeito:
escrever “Opcção inválida.”
fimescolhe
fim

I. O algoritmo calcula as quatro operações aritméticas básicas (adição,


subtração, multiplicação e divisão), desde que o usuário entre com uma
operação válida (+, –, *, /) e dois números reais em seguida.
II. O algoritmo sempre escreve “Opção inválida” ao terminar sua execução.
III. O algoritmo não executará, devido às expressões dos CASOS serem
textos ao invés de inteiros.
IV. Sem usar a variável res, o algoritmo não realiza a operação aritmética.

a) Somente I está correta.


b) Somente I, II e III estão corretas.
c) Somente I e II estão incorretas.
d) Somente III e IV estão incorretas.

56 1º PeRÍodo • análise e desenvolvimento de sistemas • unitins


aula 4 • lógica PaRa PRogRamação

3. Implemente um algoritmo que solicite a entrada de um número inteiro e:


• caso esse número seja maior do que zero, deve ser avaliado se ele é
par, em caso positivo, algoritmo deve informar isso e calcular e exibir
o quadrado do número. Se o número for ímpar, essa situação deve ser
informada, e o algoritmo deve incrementar o conteúdo da variável em
uma unidade, exibindo o resultado;
• caso o número seja igual a zero, deve ser emitida uma mensagem infor-
mando que o valor digitado é nulo; e, se o valor for negativo, isso deve
ser informado ao usuário.

4. Justifique o motivo pelo qual não é viável a utilização de estrutura condi-


cional com múltiplas escolhas para resolver problemas que, com estrutura de
seleção encadeada, resultariam em um tipo de estrutura heterogênea.

Os objetivos desta aula foram alcançados se você tiver acertado as ativi-


dades propostas. Para o objetivo de compreender a aplicabilidade das estruturas
de seleção encadeadas, propusemos as atividades um e três; para o objetivo de
entender a lógica para implementação de uma estrutura de seleção com múltipla
escolha, propusemos as atividades dois e quatro. Verifique os resultados.
Na atividade um, a resposta é a alternativa (d). O que se procura nessa
atividade é encontrar outros dois testes condicionais que podem substituir os
expressos nas linhas 11 (se sexo=/=1 e sexo=/= 2 entao) e 15 (se sexo=1 e
idade<18 entao), sem mudar o funcionamento do algoritmo. A alternativa (a)
apresenta como possibilidade para a linha 11 “se sexo < 1 e sexo > 2 entao”,
o que é contraditório, afinal só será verdadeiro esse teste quando sexo for
menor que 1 e maior e 2, contudo não existe um número que possa ser menor
que 1 e maior que 2 ao mesmo tempo e, assim, não expressa a idéia original
da linha 11 (que pode ser lida como: se sexo diferente de 1 e de 2 então), o
que invalida essa alternativa. Na alternativa (b), a opção para a linha 11 (se
sexo < 1 ou sexo > 2 entao) é válida porque a variável sexo é do tipo inteiro
e, sendo assim, não pode assumir valores no intervalo numérico ]1,2[. Nesse
caso, só entrará se sexo for diferente de 1 e 2. Contudo a opção da linha 15
(se sexo =/= 2 e idade > 0 ou idade < 18 entao) na alternativa (b) é inválida
porque o teste idade > 0 ou idade < 18 irá aceitar qualquer valor inteiro.
Afinal, 20, por exemplo, é maior que 0 (verdadeiro para o primeiro teste condi-
cional) e não é menor que 18 (falso para o segundo teste condicional). Com
isso, verificando-se na tabela dos operadores lógicos da aula dois, vê-se que
VERDADEIRO ou FALSO é igual a VERDADEIRO. Contudo, o valor 20 é falso no
teste condicional original da linha 15. Na alternativa (c), a opção para a linha
11 é inválida como vimos na alternativa (a). A opção da linha 15 da alternativa

unitins • análise e desenvolvimento de sistemas • 1º PeRÍodo 57


aula 4 • lógica PaRa PRogRamação

(c) é inválida também pelos mesmos motivos expostos na opção da linha 15 da


alternativa (b). Na alternativa (d), já sabemos que a opção da linha 11 é válida,
como argumentado na explicação da opção da linha 11 da alternativa (b). Na
opção da linha 15 da alternativa (d), a primeira parte (sexo=/=2) está correta,
porque, repare nas linhas 11 e 13, só executará a linha 15 se o valor de sexo
for igual a 1 ou 2. Com isso, se o teste verifica se sexo é diferente de 2, ele só
pode ser 1 (o que confere com a original). A segunda parte também é válida
porque na linha 14 verifica se idade é maior que 0 (zero) fazendo executar a
linha 15 somente se idade for maior que 0 (zero). Assim idade > 0 é sempre
verdadeiro, dependendo somente de idade < 18. Verificando na tabela dos
operadores lógicos, o operador E só é verdadeiro quando se tem VERDADEIRO
e VERDADEIRO. Resumindo, só entrará se for satisfeita se a condição idade <
18 for verdadeira, o que confere com a original.
Na atividade dois, a resposta correta é a alternativa (a). Nessa atividade,
você encontra um algoritmo que utiliza a estrutura de seleção múltipla escolhe...
caso. O algoritmo executará determinada operação aritmética de acordo com
a opção digitada pelo usuário. A assertiva I diz que o algoritmo executará
alguma expressão aritmética, somente se o usuário digitar no momento que
lhe for sugerido uma das operações: +, –, * ou /. Depois de ler dois números
reais digitados pelo usuário, o algoritmo imprimirá o resultado da operação em
um dos casos definidos na estrutura de seleção múltipla. Já se no momento da
leitura da variável opção o usuário digitar uma operação que não seja a defi-
nida anteriormente, o algoritmo imprimirá na tela: “Opção inválida”. Portanto
essa assertiva é verdadeira. Com relação à assertiva II, conforme definido na
estrutura defeito da seleção múltipla, a mesma só será executada caso nenhuma
das definições de caso seja satisfeita. Portanto, ao entrar com uma operação
aritmética válida (+, –, * ou /), o algoritmo não apresentará a mensagem
“Opção inválida”, pois o mesmo não será executado. Devido a essa caracte-
rística do defeito, a assertiva é falsa. Com relação à assertiva III, diferente das
estruturas discutidas anteriormente, na estrutura escolhe...caso o teste condi-
cional não retorna um valor lógico, mas sim um valor inteiro, real ou caractere.
Podemos observar que o algoritmo não apresentará erros e executará normal-
mente, mesmo comparando a variável “opcao” com os caracteres +,–, * e /.
Portanto a assertiva é falsa, pois a mesma afirma que o algoritmo não execu-
tará devido às expressões casos não serem inteiras. Finalmente, com relação à
assertiva IV, a variável “res” não foi utilizada em nenhum momento no algoritmo,
ela foi apenas declarada no início do algoritmo. Portanto, se retirarmos essa
declaração, o funcionamento do algoritmo não será afetado de forma alguma.
Podemos então definir que a assertiva é falsa, pois a mesma tenta afirmar que
sem a variável em questão o algoritmo não realiza a operação aritmética.
A atividade três resulta em um pseudocódigo semelhante ao seguinte, o qual
respeita as condições propostas no enunciado:

58 1º PeRÍodo • análise e desenvolvimento de sistemas • unitins


aula 4 • lógica PaRa PRogRamação

Em resposta à atividade quatro, pode-se concluir que a estrutura de seleção


com múltiplas opções não é viável, em geral, para representação de estruturas
encadeadas heterogêneas por não apresentarem um padrão lógico linear, como
é o caso da atividade dois. Para representação mediante uma estrutura de
múltipla escolha (escolhe...caso), devemos ter um conjunto de elementos discretos
que necessita ser testado, para o qual ações diferentes devem ser associadas a
esses elementos.

FORBELLONE, André Luiz Villar; EBERSPÄCHER, Henri Frederico. Lógica de


programação: a construção de algoritmos e estruturas de dados. São Paulo:
Pearson Prentice Hall, 2005.

Na aula seguinte, conheceremos mais uma poderosa estrutura lógica de


programação que permitirá executarmos diversas vezes um determinado trecho
do pseudocódigo. É a estrutura de repetição com teste no início.
Como sempre, não custa lembrar, recomendamos que você revise os
conceitos e técnicas vistos até agora, e realize uma leitura prévia do conteúdo
da próxima aula.

unitins • análise e desenvolvimento de sistemas • 1º PeRÍodo 59


aula 4 • lógica PaRa PRogRamação

Anotações

60 1º PeRÍodo • análise e desenvolvimento de sistemas • unitins


aula 5 • lógica PaRa PRogRamação

Aula 5
Estrutura de repetição
com teste no início

Esperamos que, ao final desta aula, você seja capaz de:


• compreender a utilidade dos laços de repetição na solução de problemas;
• aplicar as estruturas de repetição com teste no início adequadamente,
na construção de algoritmos.

Para que você consiga acompanhar de forma satisfatória esta aula, é neces-
sário que domine as estruturas de programação seqüencial e de desvio condi-
cional estudadas até o presente momento. Também a tranqüilidade e a segurança
na construção de expressões lógico-matemáticas para a correta compreensão e
desenvolvimento das estruturas que começaremos a estudar a partir desta aula
serão fundamentais. Nosso estudo exige conhecimento cumulativo, por isso não
deixe lacunas para trás!

Ultrapassamos metade do nosso conteúdo e vamos agora conhecer mais


um conjunto de estruturas de extrema importância para o desenvolvimento de
sistemas realmente úteis. As estruturas de repetição.
Essas estruturas, também conhecidas como laços de repetição ou loops,
permitem que um bloco de instruções permaneça sendo executado repetida-
mente, até que uma determinada situação seja alcançada, momento no qual o
laço é interrompido, encerrando o algoritmo ou continuando a execução dos
comandos existentes após o laço. Vamos conhecê-la agora.

5.1 Estruturas de repetição


Todos os pseudocódigos que estudamos e implementamos até agora, durante
nossas aulas, eram lineares, seqüenciais, podendo ter desvios na sua execução,

unitins • análise e desenvolvimento de sistemas • 1º PeRÍodo 61


aula 5 • lógica PaRa PRogRamação

mas sempre avançando em direção ao fim do algoritmo, nunca retornando para


executar novamente algum comando anterior. Ou seja, todos eles solucionavam
o problema proposto apenas uma vez, tendo que ser reiniciados para nova utili-
zação. Isso, como você já deve ter notado, não é algo muito prático.
Pense, por exemplo, no algoritmo para calcular a média de um aluno. Pois
é... Para um único aluno funciona muito bem. Contudo, se tivéssemos que usar
esse algoritmo para calcular a média de uma turma com 50 alunos, certamente
não seria uma tarefa muito prática. Uma saída, não muito inteligente, seria
repetir o trecho do programa quantas vezes fosse necessário, ou seja, no caso
das médias, o pseudocódigo teria o trecho que solicita as notas, calcula e exibe
a média, repetido 50 vezes.
É aqui que entram em cena as estruturas de repetição. Comecemos então a
compreender suas estruturas e lógica de funcionamento.

Saiba mais

5.1.1 Repetição com teste no início (enquanto ... faz)


O laço de repetição com teste no início é uma estrutura que executa a
repetição de um determinado trecho do código desde que permitido por uma
verificação anterior.
Essa estrutura com teste no início é denominada de enquanto e permite
a repetição de um trecho de código enquanto uma determinada condição for
verdadeira. Sua sintaxe é representada na figura seguinte.

Quadro 1 Sintaxe e fluxograma do loop com teste no início.

SINTAXE EM PSEUDOCÓDIGO FLUXOGRAMA

Vejamos agora um pequeno exemplo do uso dessa estrutura. O algoritmo


seguinte realiza a exibição em tela dos números de 1 a 10 em ordem crescente,
utilizando o laço de repetição enquanto.
É criada uma variável i do tipo inteiro, a qual a cada execução do laço é
incrementada em 1. Ou seja, a cada execução, a variável recebe o seu valor

62 1º PeRÍodo • análise e desenvolvimento de sistemas • unitins


aula 5 • lógica PaRa PRogRamação

atual mais um (i ← i +1). Essa variável costuma ser denominada de contador,


haja vista que sua função é justamente contar a quantidade de iterações
realizadas ou a quantidade de vezes que uma determinada situação ocorre.
A condição imposta na primeira linha do enquanto garante a finitude do
laço, pois no momento em que a variável i não satisfaça mais a condição,
não será mais permitida a execução das instruções contidas no loop, saindo
da estrutura de repetição e continuando a execução dos comandos seguintes
do pseudocódigo.

Figura 1 Exemplo de loop com teste no início.

Vamos agora implementar o algoritmo para calcular a média da nota de


duas provas para uma turma de 50 alunos. Se você compreendeu o funcio-
namento do exemplo anterior, já deve ter uma boa idéia de como elaborar
esse algoritmo.

Figura 2 Exemplo de loop com teste no início.

// Exemplo 16 – Cálculo da média – 50 alunos


inicio
real nota1 , nota2
inteiro i <- 1
enquanto i <= 50 faz
escrever “Aluno ” , i , “\n”
escrever “Digite a primeira nota: ”
ler nota1
escrever “Digite a segunda nota: ”
ler nota2
escrever “Média = ” , ( nota1 + nota2 ) / 2 , “\n\n”
i <- i + 1
fimenquanto
fim

unitins • análise e desenvolvimento de sistemas • 1º PeRÍodo 63


aula 5 • lógica PaRa PRogRamação

Muito bem. Mas creio que, após analisar o código anterior, você já deva
ter se perguntado:

Mas... e se eu não quiser as médias dos 50 alunos? Se quiser parar antes dos cinqüenta
ou se quiser calcular para um número maior?

Realmente o algoritmo proposto está bem rígido nesse aspecto. Ele só serve
para calcular a média de 50 alunos. Nem mais, nem menos (a não ser que você
force o encerramento do programa). Mas basta uma pequena alteração para
resolver esses problemas. Vejamos.

Figura 3 Exemplo de loop com teste no início.

Com a alteração realizada no pseudocódigo, o nosso contador i perdeu


a função de definir o momento de encerramento do laço e passou a servir

64 1º PeRÍodo • análise e desenvolvimento de sistemas • unitins


aula 5 • lógica PaRa PRogRamação

unicamente para indicar o número do aluno para o qual foi realizado o cálculo
da média. Ele permanece com a função de contador, mas não influencia mais
a execução ou não do loop.
Dessa forma, o controle de execução do laço passou para o usuário, o qual
gerencia essa estrutura por meio da variável continua. Enquanto o usuário perma-
necer inserindo o valor “s” para essa variável, o laço continua em execução.
Quando for digitado um caractere diferente, o loop será encerrado. Assim a
variável continua é o que denominamos de critério de parada do nosso laço.
Você também pode especificar previamente, durante a execução do algo-
ritmo, a quantidade de vezes que o laço será repetido. Vejamos um exemplo
disso em um algoritmo implementado para retornar a média de n números digi-
tados pelo usuário. O algoritmo deve solicitar ao usuário quantos números serão
digitados para o cálculo. Após isso, deve entrar no laço, solicitar a entrada
dos n valores e, após a leitura de todos, calcular a média. Aqui entra mais um
conceito: acumulador. Assim como o contador serve para contar a quantidade
de vezes que um laço, ou um determinado evento dentro dele, é executado, o
acumulador visa a realizar o armazenamento cumulativo de valores dentro de
uma variável (como, por exemplo, um somatório).
Assim, dentro do laço, além do contador que controlará o número de execu-
ções do loop, teremos um acumulador, o qual irá somando todos os valores
digitados para, após o encerramento do laço, ser dividido pela quantidade de
valores digitados obtendo, dessa forma, a média.
O seu algoritmo deve ficar parecido com o exemplo a seguir.
Figura 4 Exemplo de loop com teste no início.
// Exemplo 18 – Cálculo da média com acumulador
inicio
real valor , acum <- 0
inteiro cont <- 1 , n
escrever “Quantos números deseja digitar? ”
ler n
enquanto cont <= n faz
escrever “Digite o valor ” , cont , “: ”
ler valor
acum <- acum + valor
cont <- cont + 1
fimenquanto
cont <- cont – 1
escrever “\nA soma dos ” , cont , “ números é: ”,
acum
escrever “\nA média dos números é: ” , acum / cont
fim

unitins • análise e desenvolvimento de sistemas • 1º PeRÍodo 65


aula 5 • lógica PaRa PRogRamação

Para fixarmos melhor a estrutura de repetição com teste no início, vamos


desenvolver um último algoritmo que sirva para listar todos os números pares de
0 a 100, informando também a quantidade, o somatório e a média deles.

Figura 5 Exemplo de loop com teste no início.

Com esse exemplo, concluímos mais uma aula da nossa disciplina de lógica
para programação. Revise bem os conceitos e exemplos dados de forma a dirimir
qualquer dúvida. Sobretudo não custa lembrar que você deve treinar muito o
desenvolvimento de algoritmos, pois só é possível aprender a desenvolvê-los
colocando a mão na massa, construindo e testando algoritmos. Não se iluda
em querer aprender apenas compreendendo o funcionamento de algoritmos
prontos. Crie problemas e solucione-os com algoritmos desenvolvidos por você.
Use a criatividade!

Nesta aula, vimos a estrutura de repetição com teste no início enquanto...


faz, a qual nos permite repetir blocos de instruções nenhuma, uma ou diversas
vezes. Ou seja, o bloco de comando permanecerá sendo executado repe-
tidamente, enquanto a condição lógica da estrutura estiver retornando um
valor verdadeiro. Esse tipo de estrutura é extremamente útil, pois, geralmente,
para solucionarmos problemas por meio computadorizado, é necessária a
repetição de determinados processos, o que não era tecnicamente viável
com as estruturas seqüenciais e de desvio condicional (estruturas de seleção
simples, composta e encadeada).

66 1º PeRÍodo • análise e desenvolvimento de sistemas • unitins


aula 5 • lógica PaRa PRogRamação

1. Dado o algoritmo a seguir, que faz uso do laço de repetição enquanto, qual
será o valor exibido na tela após sua execução?
inicio
inteiro x , resultado
x <– 5
resultado <– 0
enquanto ( x > 0 ) faz
resultado <– x * 2
resultado <– resultado – 2
x <– x – 1
fimenquanto
escrever resultado
fim

a) 2 c) 0
b) –2 d) –1

2. As estruturas de repetições (também conhecidas por laço ou loop) permitem


executar uma instrução ou um bloco de instruções repetidas vezes de forma
automatizada. Contudo devemos controlar quando iniciar e interromper o
processamento das instruções. Leia as afirmativas e assinale a alternativa
correta sobre estruturas de repetição.
I. A condição de parada de um laço é definida com uso de expressões
lógicas ou relacionais.
II. Um laço não termina sua execução quando não é possível atingir sua
condição de parada.
III. Em todos os tipos de estruturas de repetições é necessário ter conheci-
mento exato de quantas vezes serão repetidas as instruções.
a) Somente I é falsa.
b) Somente II é falsa.
c) Somente III é falsa.
d) Todas as afirmativas são verdadeiras.

3. Implemente um algoritmo que use a estrutura enquanto...faz para solicitar


a entrada de uma quantidade indeterminada de valores inteiros maiores
que zero. Quando o usuário informar que não deseja inserir mais nenhum
número, o algoritmo deve exibir a soma de todos os valores digitados, a
quantidade de valores pares, a quantidade de valores ímpares e a média
geral de todos os valores inseridos. Só após isso ele deve ser encerrado.

unitins • análise e desenvolvimento de sistemas • 1º PeRÍodo 67


aula 5 • lógica PaRa PRogRamação

Obs.: a condição de parada é valor=0, ou seja, quando o usuário digitar 0


para a variável valor, o laço deve encerrar.

4. O que são acumuladores e contadores? Discorra sobre eles em um texto de


cinco a dez linhas.

As atividades propostas visaram ao alcance dos objetivos desta aula, quais


sejam: compreender a utilidade dos laços de repetição na solução de problemas
e aplicar as estruturas de repetição com teste no início adequadamente, na cons-
trução de algoritmos. Observe os resultados que você deve ter obtido.
Na atividade um, deve ser assinalada a alternativa (c), pois a durante a
execução do algoritmo dado, a variável resultado sempre recebe o dobro de x
e, depois, recebe o seu valor atual menos dois. Assim, como o x é decrementado
em 1 a cada execução do laço, no momento em que x = 1, resultado = 2 * x – 2.
Logo resultado = 0.
Para a atividade dois, a alternativa (c) é a resposta correta, porque a primeira
afirmação é verdadeira, visto que as expressões lógicas ou relacionais são usadas
para determinar o fim de um loop (laço de repetição). A segunda afirmação também
é verdadeira, visto que, enquanto a condição de parada não for alcançada, o loop
(laço de repetição) executará o bloco de instruções indefinidamente. Por fim, a
terceira afirmação está incorreta, já que nem sempre se tem o conhecimento exato
de quando o laço de repetição irá parar, pois muitas situações podem ocorrer
dentro de um bloco de instrução mudando os rumos da expressão lógica ou rela-
cional a fim de que continue a executar o bloco de instruções indefinidamente.
O algoritmo solicitado na atividade três, pode ficar parecido com o seguinte:
inicio
inteiro valor , cont <- 0 , acum <- 0 , par <- 0 , imp <- 0
escrever “\nDigite um valor: ”
ler valor
enquanto valor =/= 0 faz
se valor % 2 = 0 entao
par <- par + 1
senao
imp <- imp + 1
fimse
acum <- acum + valor
cont <- cont + 1
escrever “\nDigite um valor: ”
ler valor
fimenquanto

68 1º PeRÍodo • análise e desenvolvimento de sistemas • unitins


aula 5 • lógica PaRa PRogRamação

escrever “\nQuantidade de pares: ” , par


escrever “\nQuantidade de ímpares: ” , imp
escrever “\nTotal dos valores digitados: ” , acum
escrever “\nMédia geral: ” , acum \ cont
fim

Realize uma análise desse código comparando-o com o que você desen-
volveu e, para uma melhor compreensão, implemente-o no Portugol IDE para
verificar sua funcionalidade.
Finalmente, na atividade quatro, um contador nada mais é do que uma vari-
ável utilizada para contar a quantidade de execuções de um laço, ou a quanti-
dade de vezes que uma determinada situação acontece. Pode ser utilizada de
muitas formas, mas sempre procurando contar as ocorrências de algum evento
dentro do laço. O acumulador, por outro lado, é uma variável que armazena
valores de forma cumulativa. O acumulador pode, por exemplo, realizar o soma-
tório de valores a cada execução do laço.

Verificaremos duas variações de laço de repetição. Dessa vez com o teste


sendo realizado no final, e não no início, como é o caso do enquanto...faz.
Vamos adiantar uma espiada nesse conteúdo para chegar no dia da aula já com
uma boa base de conhecimento? Então, mãos à obra!

Anotações

unitins • análise e desenvolvimento de sistemas • 1º PeRÍodo 69


aula 5 • lógica PaRa PRogRamação

70 1º PeRÍodo • análise e desenvolvimento de sistemas • unitins


aula 6 • lógica PaRa PRogRamação

Aula 6
Estrutura de repetição
com teste no final

Esperamos que, ao final desta aula, você seja capaz de:


• diferenciar a aplicabilidade das estruturas de repetição com teste no
início das estruturas de repetição da aplicabilidade com teste no final;
• entender a funcionalidade de cada uma das estruturas de repetição com
teste no final.

É vital a perfeita compreensão do funcionamento das estruturas de repetição


estudadas na aula anterior, pois as que abordaremos nesta aula são variações
dessas, com alterações na sua estrutura lógica. Dessa forma, revise as estruturas
de repetição para não ter dificuldades na compreensão de sua aplicabilidade
com teste no final.

Na nossa aula anterior, trabalhamos com estruturas de repetição com teste


no início. Nesse tipo de estrutura, o teste é realizado antes de entrar no bloco
de instruções e, assim, as instruções podem ser executadas nenhuma, uma ou
diversas vezes. Só executará os comandos se a condição for satisfeita.
As estruturas que estudaremos agora têm, como peculiaridade, a execução
do teste após o bloco de instruções. Ou seja, como o teste é realizado após a
execução dos comandos contidos no laço, isso garante que essas instruções
serão realizadas ao menos uma vez antes de encerrar o loop. Logo esse tipo de
estrutura executa as suas instruções internas uma ou diversas vezes.

6.1 Estrutura de repetição com teste no final (faz ... enquanto)


Já vimos o funcionamento do laço enquanto...faz, no qual o teste é reali-
zado no início da estrutura. Agora veremos uma estrutura que faz justamente o
contrário: o laço de repetição faz...enquanto. Vejamos a sua sintaxe.

unitins • análise e desenvolvimento de sistemas • 1º PeRÍodo 71


aula 6 • lógica PaRa PRogRamação

Quadro 1 Sintaxe e fluxograma de estrutura de repetição faz...enquanto.


SINTAXE EM PSEUDOCÓDIGO FLUXOGRAMA

O faz...enquanto permanece em looping até que a condição seja falsa.


Vejamos a seguir um pequeno exemplo do funcionamento desse tipo de laço.
Nesse exemplo, o pseudocódigo solicita inicialmente que o usuário entre
com o número correspondente a um mês do ano. Após a digitação e confir-
mação pelo usuário, será executado o bloco de instruções – nesse caso, um
bloco de desvio condicional com múltiplas escolhas.
Só depois da execução dos comandos internos do laço é que a condição
será testada e, enquanto ela retornar um valor verdadeiro, o laço permane-
cerá em execução. Somente quando for digitado um valor que não satisfaça a
condição imposta (um valor que retorne falso) é que o laço encerrará.
Analise o pseudocódigo com atenção, realizando sua execução mental-
mente com diversos valores diferentes para a variável mes, de forma que possa
compreender bem o seu funcionamento.

Figura 1 Exemplo de estrutura de repetição faz...enquanto.

72 1º PeRÍodo • análise e desenvolvimento de sistemas • unitins


aula 6 • lógica PaRa PRogRamação

6.2 Estrutura de repetição com teste no final (repete...ate)


Outra estrutura bastante semelhante a anterior, também com a condicional
definida no final da estrutura, é a repete...ate. A sua diferença básica em relação
ao faz...enquanto é que ela encerra a execução do laço apenas quando a
condição for verdadeira.

Vejamos então sua sintaxe.

Quadro 2 Sintaxe de estrutura de repetição repete...ate e representação em


fluxograma.

SINTAXE EM PSEUDOCÓDIGO FLUXOGRAMA

Compare o fluxograma dessa estrutura com o do faz ... enquanto para iden-
tificar a diferença de funcionalidade.

unitins • análise e desenvolvimento de sistemas • 1º PeRÍodo 73


aula 6 • lógica PaRa PRogRamação

Veja um pequeno exemplo, no qual o pseudocódigo apresenta na tela os


números de 1 a 10, utilizando essa estrutura.
Figura 2 Exemplo de estrutura de repetição repete ... ate.

Você pôde notar, nesse exemplo, que o laço só encerra sua execução
quando a sua condição retorna um valor verdadeiro; nesse caso, quando a
variável i é igual a dez.
Vamos exercitar um pouco? Tente resolver o seguinte problema e só depois
de ter a sua versão do algoritmo funcionando confira com o pseudocódigo aqui
apresentado para poder comparar detalhes e diferenças das implementações.
Problema: desenvolva um jogo no qual o computador escolhe um número inteiro
positivo entre 0 (zero) e 100 (cem) de forma aleatória (já utilizamos antes essa
função). Após determinar o número (sem exibi-lo ao usuário), o computador
solicitará que você permaneça “chutando” valores até acertar o número oculto.
A cada tentativa do usuário, o computador deve informar se o número oculto
é maior ou menor do que o informado pelo jogador. O jogo terminará no
momento em que o número for localizado, quando então o computador deverá
encerrar o laço, informando o número oculto e a quantidade de tentativas neces-
sárias para encontrá-lo.

Figura 3 Exemplo de estrutura de repetição repete ... ate.

74 1º PeRÍodo • análise e desenvolvimento de sistemas • unitins


aula 6 • lógica PaRa PRogRamação

Fácil, não é verdade? E se não desejássemos que o jogo encerrasse ao ser


encontrado o número? Pois bem. Se quisermos permitir que o jogador decida se
quer parar de jogar ou tentar uma nova rodada do jogo, é necessário realizar
uns pequenos ajustes no pseudocódigo. Pense um pouco antes de conferir o
algoritmo pronto para ver se você consegue adequar o código anterior para
permitir essa funcionalidade.

Figura 4 Exemplo de estrutura de repetição repete ... ate.

unitins • análise e desenvolvimento de sistemas • 1º PeRÍodo 75


aula 6 • lógica PaRa PRogRamação

Pronto! Analise esse código e compare com o anterior para verificar quais
foram as alterações implementadas.
Com isso, estamos encerrando o conteúdo desta aula e nos aproximando do
final da nossa disciplina. Não deixe de executar as atividades do caderno e de
acessar o material complementar disponibilizado pelos professores.

As estruturas de repetição com teste no final apresentam uma variante à estru-


tura de repetição com teste no início, tendo como principal diferença o fato de que
a estrutura com teste no início pode ser executada nenhuma, uma ou diversas vezes.
Já as estruturas com teste no final têm seu bloco de instruções executadas ao menos
uma vez, independentemente do valor do seu teste lógico (condição). Assim esse
tipo de estrutura é executado uma ou diversas vezes, mas nunca nenhuma vez.

1. As estruturas de repetição possuem características particulares em sua cons-


trução e forma de execução. Considerando que há estruturas que permitem
a repetição nenhuma, uma ou várias vezes, analise o algoritmo a seguir
sabendo que, sem modificar o tipo da estrutura de repetição, desejo efetuar
uma pequena alteração para que o laço repita nenhuma vez. Assinale a
alternativa mais adequada.

76 1º PeRÍodo • análise e desenvolvimento de sistemas • unitins


aula 6 • lógica PaRa PRogRamação

inicio
inteiro numero, contador
repete
escrever “Introduza um numero:”
ler numero
contador <- contador + 1
ate contador > 5
fim

a) Bastaria iniciar a variável contador com valor 6.


b) Apenas é necessário modificar o teste condicional para contador < 5 em
vez de contador > 5.
c) É possível realizar a modificação adequadamente movendo a linha
contador <- contador + 1 para o início do bloco, logo abaixo de repete.
d) Não é possível fazer a modificação deseja, já que a estrutura em questão
sempre executa o bloco pelo menos uma vez.

2. A função básica de um caixa de supermercado é apenas somar os preços


dos produtos desejados para compra pelo cliente. Diante disso, um algo-
ritmo básico para a soma dos produtos que o cliente comprará pode ser
dado pelo algoritmo a seguir:

inicio
inteiro opcao, quantidade
real total <– 0.0
repete
escrever “Produto 1 - R$ 10,00\n”
escrever “Produto 2 - R$ 25,00\n”
escrever “Produto 3 - R$ 50,00\n”
escrever “Escolha um número de produto ou 0 para sair”:
ler opcao
escolhe opcao
caso 0:
escrever “Total da compra:”, total
caso 1:
ler quantidade
total <– total + quantidade * 10.0
caso 2:
ler quantidade
total <– total + quantidade * 25.0
caso 3:
ler quantidade
total <– total + quantidade * 50.0
fimescolhe
ate (opcao = 0)
fim

unitins • análise e desenvolvimento de sistemas • 1º PeRÍodo 77


aula 6 • lógica PaRa PRogRamação

Diante do algoritmo, se forem entrados os valores 2, 5, 3, 1, 0, respectiva-


mente, teremos a saída final mostrada pelo Portugol IDE da seguinte forma:
a) total da compra: 275.0;
b) o algoritmo não executará devido à inexistência da cláusula defeito na
sintaxe do algoritmo escolhe...caso;
c) total da compra: 175.0;
d) o algoritmo entrará em uma repetição infinita.

3. Quando algoritmos são criados, algumas vezes há necessidade de controlar


a ordem em que as instruções deverão ser executadas pelo computador de
modo a solucionar um problema. Para permitir que o fluxo de execução
seja controlado, devemos utilizar as estruturas de controle. Sobre fluxo de
execução, leia as afirmativas a seguir e assinale a alternativa correta.
I. Na estrutura seqüencial, os comandos de um algoritmo são executados
em uma seqüência pré-estabelecida, ou seja, cada comando é execu-
tado somente após o término do comando anterior.
II. Na estrutura de decisão (desvio condicional), são comuns situações em
que uma instrução, ou conjunto de instruções, devam ser executados
sempre para situações verdadeiras e falsas.
III. Em todas as estruturas de repetição, uma seqüência de comandos deverá
ser executada obrigatoriamente uma ou várias vezes, de acordo com
uma condição.

a) Somente as afirmativas I e II são verdadeiras.


b) Somente a afirmativa II é falsa.
c) Somente a afirmativa III é verdadeira.
d) Somente as afirmativas II e III são falsas.

4. Um algoritmo para selecionar o maior número entre N digitados, até o


usuário digitar zero, poderia ser definido como:

inicio
inteiro maior <- 1
inteiro numeros
repete
escrever “Digite um numero (zero para sair): “
ler numeros
se numeros > maior entao
maior <- numeros
fimse
ate maior = 0
escrever “O maior numero digitado foi: “ , maior
fim

78 1º PeRÍodo • análise e desenvolvimento de sistemas • unitins


aula 6 • lógica PaRa PRogRamação

Dado o algoritmo anterior, o que está errado em relação ao que foi proposto?
a) O Número maior não será calculado de forma correta, pois o mesmo
sempre estará com o valor zero.
b) A variável número não armazena o valor digitado pelo usuário.
c) O laço de repetição encerra após a leitura do número 1, não do zero.
d) O laço de repetição ficará repetindo, pois nunca será atendida a
condição de parada.

Ao resolver a atividade um você alcançou o objetivo da aula de diferenciar


a aplicabilidade das estruturas de repetição com teste no início das estruturas de
repetição com a aplicabilidade de teste no final.
Para a atividade um, a resposta correta é a alternativa (d). Segundo a
proposta da atividade, de modificar o algoritmo para que não seja executado o
bloco interno ao laço sem que seja modificada a estrutura de repetição, podemos
refletir que modificar a variável contador para 6 não impede de executar pelo
menos uma vez o bloco de instruções do laço. Modificar o teste condicional para
contador < 5 também não impede a execução do bloco de instruções do laço,
já que o teste da estrutura repete...até é sempre realizado após a execução.
Modificar a posição do incremento da variável contador dentro do bloco interno
de instruções também não evita a execução do bloco. Portanto a alternativa (d)
é a correta, já que a modificação desejada não é possível sem que se modifique
a estrutura de repetição.
As atividades dois, três e quatro ajudaram você a atingir o segundo obje-
tivo: entender a funcionalidade das estruturas de repetição com teste no final.
Na atividade dois, a alternativa correta é a (c). Para resolver essa atividade,
é necessário analisar o algoritmo. No próprio enunciado são apresentados os
valores que deverão ser entrados, na ordem em que foram apresentados: 2, 5,
3, 1, 0. O algoritmo iniciará execução e logo solicitará que o primeiro valor seja
entrado na linha 9, que representa a opção selecionada. Como o primeiro dado
entrado é 2, a estrutura de seleção múltipla desviará a execução do algoritmo para
a linha 16 (caso 2). Na seqüência (linha 17), é pedido ao usuário que entre com
o segundo valor (5, de acordo com o enunciado), que será atribuído à variável
quantidade. Na linha 18, a variável total receberá o resultado do processamento
de total + quantidade * 25. Total nesse momento é 0.0 (zero), como atribuído
na linha 3 e quantidade igual a 5. Reescrevendo, total vai receber o resultado
do processamento de 0 + 5 * 25 que é igual a 125. Em seguida, por causa do
laço de repetição repete...até, parte do algoritmo será repetida. É solicitado ao
usuário a entrada do terceiro dado (3, de acordo com o enunciado). A estrutura
de seleção múltipla desviará a execução do algoritmo para a linha 19 (caso 3).

unitins • análise e desenvolvimento de sistemas • 1º PeRÍodo 79


aula 6 • lógica PaRa PRogRamação

Na seqüência (linha 20), é pedido ao usuário que entre com o quarto valor (1), de
acordo com o enunciado, que será atribuído à variável quantidade. Na linha 21
a variável total vai receber o resultado do processamento de total + quantidade *
50. Sabendo que total é igual a 125 e quantidade igual a 1, podemos reescrever
para 125 + 1 * 50, que é igual a 175. Em seguida, por causa do laço de repetição
repete...até, parte do algoritmo será repetida. É solicitado ao usuário a entrada do
último dado (0). A estrutura de seleção múltipla desviará a execução do algoritmo
para a linha 11 (caso 0). É impresso em tela Total da compra: 175.0 (lembrando
que total é uma variável real) e sairá finalizando o algoritmo.
Para a atividade três, a resposta é a alternativa (d). Isso porque a afirmativa
( I ) é verdadeira, pois como o próprio nome diz, estrutura seqüencial obedece a
uma seqüência linear de execução. Já na afirmativa (II), sabemos que um teste
condicional é baseado em lógica convencional e, portanto, deve resultar em um
valor verdadeiro ou falso. Lembre-se dos tipos de desvios condicionais: seleção
simples, composta e encadeada. Repare que nessa afirmativa não é especificada
qual o tipo de desvio condicional, ou seja, a afirmação generaliza para todos os
tipos. Contudo, na seleção simples, uma instrução ou um conjunto de instruções
é executado somente se o teste condicional especificado retornar o valor verda-
deiro. Adicionalmente, na seleção composta, as instruções contidas nos desvios
condicionais devem ser executadas sempre para situações verdadeiras ou falsas.
Isso torna a afirmativa (II) incorreta. A afirmativa (III) também é falsa, pois uma
seqüência de comandos pode ser executada nenhuma, uma ou várias vezes.
Para a atividade quatro, a alternativa a ser assinalada é a (d), uma vez que
a variável maior já inicia com um valor diferente de zero e, em nenhum momento
na execução do algoritmo ela poderá assumir o valor zero, pois o desvio condi-
cional dentro do bloco do laço de repetição não permite essa atribuição. A
variável que deveria servir para encerrar o laço seria a numeros, pois é ela que
recebe o valor digitado pelo usuário, enquanto a maior sempre irá armazenar
o maior valor digitado.

Encerraremos a disciplina abordando mais uma estrutura de repetição: estru-


tura de repetição com variável de controle. Realize uma leitura prévia desse
conteúdo para uma melhor compreensão.

Anotações

80 1º PeRÍodo • análise e desenvolvimento de sistemas • unitins


aula 7 • lógica PaRa PRogRamação

Aula 7
Estrutura de repetição
com variável de controle

Esperamos que, ao final desta aula, você seja capaz de:


• entender a lógica de funcionamento da estrutura de repetição com vari-
ável de controle;
• saber quando aplicar esta estrutura para a correta construção de um
algoritmo.

É fundamental o conhecimento e domínio de todas as estruturas lógicas abor-


dadas nesta disciplina para você poder entender perfeitamente o funcionamento
desse tipo de laço de repetição. Esse conhecimento também ajudará você a
identificar a estrutura mais adequada a ser utilizada em cada situação.

Chegamos à nossa última aula e, para finalizar o conteúdo da disciplina,


iremos conhecer as estruturas de repetição com variável de controle. Como você
poderá verificar, é um tipo de estrutura muito utilizado na programação devido
à sua versatilidade.
Lembre-se de exercitar bastante esse e os demais conceitos e técnicas vistos
durante a disciplina, pois a clara compreensão de todos eles, bem como saber
utilizá-los de forma adequada na solução de problemas, é vital para a correta
compreensão das disciplinas vinculadas ao desenvolvimento de sistemas que
surgirão no decorrer do curso.

7.1 Repetição com variável de controle


Nas estruturas de repetição que vimos até agora, ocorrem situações nas
quais é difícil determinar o número de vezes em que o bloco de instruções será
executado. Sabe-se que ele será executado enquanto uma condição for satisfeita
(enquanto) ou até o momento em que uma condição seja satisfeita (repete). O

unitins • análise e desenvolvimento de sistemas • 1º PeRÍodo 81


aula 7 • lógica PaRa PRogRamação

laço de repetição com variável de controle, também conhecido como para, difere
dos anteriores, pois sempre repete a execução do bloco de instruções um número
predeterminado de vezes, uma vez que essa estrutura não prevê uma condição
(como é o caso das estruturas de repetição vistas anteriormente), possuindo limites
fixos de início e fim do laço de repetição (FORBELONE; EBERSPÄCHER, 2005).
Vejamos, a seguir, a sintaxe e representação por meio de fluxograma dessa
estrutura de repetição.

Quadro 1 Sintaxe e fluxograma do laço de repetição para.


SINTAXE EM PSEUDOCÓDIGO

FLUXOGRAMA

Agora podemos dar uma olhada em um pequeno algoritmo que, usando o laço
de repetição para, lista dez números inteiros seqüenciais.

Figura 1 Exemplo de estrutura de repetição para.

Repare que é criada uma variável de controle do tipo inteiro, nesse exemplo
nomeada como contador e, dentro da primeira linha do laço, ela é inicializada
com o valor 0 (zero). Nessa estrutura você pode inicializar a variável de controle

82 1º PeRÍodo • análise e desenvolvimento de sistemas • unitins


aula 7 • lógica PaRa PRogRamação

com o valor necessário para o início das instruções do laço. A seguir, é definido o
valor final da variável (9) e o valor do incremento automático (passo 1 – opcional).
Assim, cada vez que o algoritmo chegar ao final da estrutura (comando proximo),
o valor da variável será automaticamente incrementado no valor estipulado em
passo. Se não for definido o passo, será automaticamente assumido passo 1.
O pseudocódigo seguinte apresenta um exemplo de laço para com decre-
mento, para o qual foi necessário inicializar a variável de controle com um valor
maior (9) que o valor final (0) e definir o passo com uma unidade negativa (-1).

Figura 2 Exemplo de estrutura de repetição para.

Como exemplo, vamos implementar um algoritmo que exiba a tabuada de


um número inteiro informado pelo usuário, usando a estrutura de repetição para
dentro de um laço repete, de forma que o programa só encerre quando solicitado
pelo usuário.
Figura 3 Exemplo de estruturas de repetição para e repete.

unitins • análise e desenvolvimento de sistemas • 1º PeRÍodo 83


aula 7 • lógica PaRa PRogRamação

Já que estamos relembrando a matemática básica do ensino médio, vamos


avançar mais um pouco. Dada a definição de fatorial a seguir, implemente um
algoritmo que calcule o fatorial de um número informado pelo usuário, utilizando
a estrutura para.

Saiba mais

Após a implementação, o algoritmo resultante poderia ser algo do tipo:

Figura 4 Exemplo de estrutura de repetição para.

Bastante simples, não é mesmo? Contudo, nessa altura da disciplina, você


já deve estar bem familiarizado com o uso de todas as estruturas estudadas.
Lançando mão do que viu até agora, construa um algoritmo que calcule o fato-
rial de um número informado pelo usuário, controlando a entrada do número, de
forma a garantir que seja um número válido para o cálculo. O algoritmo deve
também exibir o cálculo que foi executado (ex. 3 * 2 * 1 = 6), exibindo após
o cálculo, uma mensagem informando o valor obtido e, finalmente, o algoritmo
deve permanecer solicitando novos valores para cálculo enquanto o usuário não
optar por encerrar a execução.

Implemente a sua versão para esse pseudocódigo e, depois disso, analise o


algoritmo apresentado aqui comparando as funcionalidades utilizadas.

84 1º PeRÍodo • análise e desenvolvimento de sistemas • unitins


aula 7 • lógica PaRa PRogRamação

Figura 5 Exemplo de estruturas de repetição.

Vamos agora construir um algoritmo que execute a leitura das notas de duas
provas de uma turma de alunos, cujo quantitativo será informado pelo usuário.
Após a leitura das notas de cada aluno, o algoritmo deve calcular e exibir a
média final, informando se o aluno foi aprovado (média igual ou superior a
seis), ou se foi reprovado (média inferior a seis). No final dos cálculos referentes
à turma, o algoritmo deve informar a média geral da turma juntamente com a
maior e a menor médias individuais. O algoritmo deve, no final, solicitar se o
usuário deseja continuar calculando médias para outra turma e, caso seja digi-
tado n (não), deve ser encerrada a execução.
Construa o algoritmo necessário para essa atividade e, após desenvolver o
seu, compare com o apresentado a seguir, analisando as estruturas e a lógica
utilizada em ambos.

Figura 6 Pseudocódigo para cálculo de médias.

unitins • análise e desenvolvimento de sistemas • 1º PeRÍodo 85


aula 7 • lógica PaRa PRogRamação

Com esse último exemplo, chegamos ao final da nossa disciplina. Não deixe
de revisar qualquer parte do conteúdo em que você tenha ainda alguma dúvida,
questionando os professores para uma melhor compreensão.

Execute os exercícios propostos nas atividades desta aula e no portal educa-


cional. Use a criatividade e desenvolva algoritmos para solucionar problemas do
seu cotidiano. Essa é uma boa maneira de exercitar o conteúdo.

86 1º PeRÍodo • análise e desenvolvimento de sistemas • unitins


aula 7 • lógica PaRa PRogRamação

A última estrutura vista nesta disciplina foi apresentada nesta aula. A estru-
tura de repetição com variável de controle ou para, como é mais conhecida.
Nas estruturas anteriores, enquanto e repete, é freqüentemente difícil precisar
o número de vezes que um bloco de instruções irá ser executado. Esse tipo de
laço de repetição (para) difere dos anteriores, pois possui um número pré-deter-
minado de execuções do seu bloco de instruções.

1. A seguir, é exibido o fluxograma que representa um algoritmo para imprimir na


tela a tabuada de multiplicação dos inteiros de 1 até 10. Sabendo que também
é possível representar um algoritmo por meio de pseudocódigo, assinale o algo-
ritmo desenvolvido para o Portugol IDE que melhor representa o fluxograma.

unitins • análise e desenvolvimento de sistemas • 1º PeRÍodo 87


aula 7 • lógica PaRa PRogRamação

a) inicio
inteiro contador1 <- 0
inteiro contador2 <- 0
escrever “Tabuada de Somar”
enquanto contador1 <= 10 faz
contador2 <- 1
enquanto contador2 <= 10 faz
escrever “\n\t”,contador1,”*”,contador2,”=”, contador1 *contador2
contador2 <- contador2 + 1
fimenquanto
escrever “\n\n”
contador1 <- contador1 + 1
fimenquanto
fim

b) inicio
inteiro contador1
inteiro contador2
contador1 <- 0
contador2 <- 0
escrever “Tabuada de Somar”
contador1 <- 1
repete
contador2 <- 1
enquanto contador2 <= 10 faz
escrever “\n\t”,contador1,”*”,contador2,”=”,contador1*contador2
contador2 <- contador2 + 1
fimenquanto
escrever “\n\n”
contador1 <- contador1 + 1
ate contador1 >= 10
fim

c) inicio
inteiro contador1, contador2
escrever “Tabuada de Somar”
para contador1 de 1 ate 10 passo 1
para contador2 de 1 ate 10 passo 1
escrever “\n\t”,contador1,”*”,contador2,”=”,contador1*contador2
proximo
escrever “\n\n”
proximo
fim

88 1º PeRÍodo • análise e desenvolvimento de sistemas • unitins


aula 7 • lógica PaRa PRogRamação

d) inicio
inteiro contador1
inteiro contador2
contador1 <- 0
contador2 <- 0
escrever “Tabuada de Somar”
contador1 <- 1
repete
contador2 <- 1
repete
escrever “\n\t”,contador1,”*”,contador2,”=”,contador1*contador2
contador2 <- contador2 + 1
ate contador2 <= 10
escrever “\n\n”
contador1 <- contador1 + 1
ate contador1 >= 10
fim

2. Sabemos que as estruturas de repetição são utilizadas quando necessitamos repetir um


bloco de instruções nenhuma, uma ou diversas vezes. Considerando os três modelos de
estruturas: enquanto, para e repita...até, assinale (V) ou (F) para as assertivas a seguir.
I. A estrutura enquanto é a mais apropriada para utilizar quando há a possibilidade de
nenhuma vez ser executado o bloco interno do laço.
II. Ao utilizar para, o bloco interno do laço é executado “N” vezes, onde N é um valor
numérico. Para isso o valor de “N” deve ser previamente conhecido e jamais modifi-
cado durante o laço de repetição.
III. O bloco interno do laço repita...até sempre é executado pelo menos uma vez.
IV. Repita...até é um modelo de laço que não possui expressão relacional em sua
estrutura.
V. Enquanto é a estrutura utilizada sempre que o bloco interno do laço é executado pelo
menos uma vez.

A seqüência correta é:
a) F, F, V, V, V c) V, F, V, F, F
b) F, V, F, F, V d) V, F, V, V, F

3. Fatorial é o produto dos inteiros consecutivos de 1 até um dado número natural n. Seu
símbolo é n!. O fatorial de 5 é dado por: 5! = 1 * 2 * 3 * 4 * 5 = 120. Por definição, fato-
rial de 0 é 1 (0! = 1). Considerando que você possui mais de uma forma de construir uma
estrutura de repetição, analise atentamente os algoritmos seguintes e assinale a alternativa
mais adequada à questão.

unitins • análise e desenvolvimento de sistemas • 1º PeRÍodo 89


aula 7 • lógica PaRa PRogRamação

a) Somente o algoritmo II está errado.


b) Somente o algoritmo II e III estão corretos.
c) Somente o algoritmo I está correto.
d) Todos os algoritmos estão corretos.

4. Associe os itens a seguir e assinale a alternativa em que todas as associa-


ções estão corretas.
a) (((Nota + 1) > Media) OU (NÃO Valor))
b) SE Valor < 415.00 ENTAO
ESCREVER “Menor que Salário Mínimo”

90 1º PeRÍodo • análise e desenvolvimento de sistemas • unitins


aula 7 • lógica PaRa PRogRamação

FIMSE
c) SE NOTA < 6 ENTAO
ESCREVER “Reprovado”
SENAO
ESCREVER “APROVADO”
FIMSE
d) ((3 % 2) * (2^4)) + (10 / 5)
e) PARA contador DE 0 ATE 9 PASSO 1
ESCREVER contador , “\t”
PROXIMO
f) N <- 6
g) ENQUANTO contador < 10 FAZ
ESCREVER contador , “\t”
contador <- contador + 1
FIMENQUANTO

I. É uma operação de atribuição.


II. Laço de repetição com teste condicional realizado no início.
III. Desvio condicional composto.
IV. Expressão aritmética.
V. Desvio condicional simples.
VI. Laço de repetição com iteração pré-definida.
VII. Expressão lógica.

A seqüência correta é:
a) a–V; b–IV; c–III; d–VII; e–VI; f–II; g–I
b) a–VII; b–V; c–III; d–IV; e–VI; f–I; g–II
c) a–VII; b–VI; c–IV; d–V; e–III; f–I; g–II
d) a–V; b–IV; c–VI; d–III; e–I; f–II; g– VII

Confira as respostas das atividades para ver se você atingiu os objetivos de


entender a lógica de funcionamento da estrutura de repetição com variável de
controle e de saber quando aplicar esta estrutura para a correta construção de
um algoritmo.

unitins • análise e desenvolvimento de sistemas • 1º PeRÍodo 91


aula 7 • lógica PaRa PRogRamação

Para a atividade um, a resposta correta é a alternativa (c). Como consta


no enunciado da atividade, o fluxograma descreve que será exibida na tela a
tabuada de multiplicação de 1 até 10. Analisando os algoritmos, é necessário
identificar a existência de duas estruturas de repetições que computem cada
uma das variáveis de 1 até 10. Com isso, podemos eliminar o algoritmo (a), pois
sua iteração inicia com 0. Já o algoritmo (b) parte corretamente de 1, mas não
processa a tabuada de 10. Portanto também está errado. O algoritmo (d) além
de não exibir a tabuada de 10, apenas exibe a multiplicação por 1 de cada
uma dos números de 1 até 9. Até 9 apenas pelo fato de já estar errado, pois não
chega a processar o 10. Já o algoritmo (c), que faz uso da estrutura de repetição
para processa corretamente o cálculo da tabuada de 1 até 10.
Na atividade dois, a alternativa correta é a (c). A atividade consiste em
assinalar verdadeiro ou falso às afirmações. Na afirmativa I, há a afirmação
de que a estrutura de repetição enquanto é mais apropriada para ser utilizada
quando existe a possibilidade de que o bloco interno ao laço seja executado
nenhuma vez. Essa afirmação é verdadeira pelo fato de que o teste condicional
do enquanto é realizado antes da execução do bloco de instruções. A opção II
aborda a estrutura de repetição para e afirma que o laço executa as instruções N
vezes e que também N deve ser previamente conhecido. Porém também afirma
que N jamais deve ser modificado. O que invalida essa opção, pois N pode
ser uma variável e ter seu valor modificado internamente no laço. Na opção III,
a afirmativa é verdadeira pelo fato de o laço de repetição repita...até somente
executar o teste condicional no fim de sua estrutura. Assim sempre será executado
pelo menos uma vez, como pode ser observado no último parágrafo da página
79. A opção IV afirma que o laço de repetição do tipo repita...até não possui
uma expressão relacional em sua estrutura. Essa afirmação é obviamente falsa,
pois a condição de parada dessa estrutura é definida por uma expressão rela-
cional. Na opção V, ocorre a afirmação de que enquanto é a estrutura utilizada
sempre que se deseja executar as instruções internas ao laço pelo menos uma
vez. Essa afirmação não é verdadeira, pois, como já afirmado anteriormente, a
estrutura enquanto realiza o teste condicional antes de executar suas instruções
internas. Portanto não é a estrutura indicada para este tipo de situação, já que
pode nem executar as instruções internas.
Para a atividade três, a alternativa correta é a (d). A atividade I exige a
análise de três algoritmos para verificar se possuem a mesma funcionalidade.
Observe que os algoritmos possuem a mesma instrução interna, além da instrução
necessária à sua estrutura (incremento de variável do teste condicional). Com
isso, pode-se atentar apenas aos limites e passo de cada uma das estruturas.
Todas possuem o mesmo passo, 1. Note também que todos possuem o mesmo
ponto de partida, 1. Com isso é necessário verificar o ponto de parada de cada
um dos algoritmos. O Algoritmo I possui a condição de saída quando a variável
cont for maior que num, que é o valor do qual se busca o fatorial. Portanto o

92 1º PeRÍodo • análise e desenvolvimento de sistemas • unitins


aula 7 • lógica PaRa PRogRamação

Algoritmo I possui os limites 1 e num para seu laço de repetição. O Algoritmo


II utiliza a estrutura enquanto. Observe a diferença dessa estrutura para a utili-
zada no Algoritmo I, para...faça. O laço repetirá as instruções internas enquanto
a variável cont, que parte de 1, não for maior do que a variável num. Portanto
o laço de repetição do Algoritmo II também possui seu término em num. Com
isso, seus limites são 1 e num para seu laço de repetição. O Algoritmo III utiliza
a estrutura de repetição repita...até. Note que também possui o ponto de saída
em 1 e incrementa a variável do teste condicional cont até que seja maior que
num. Observe que esse tipo de laço possui seu teste condicional no fim de sua
estrutura. Com isso, a variável cont obtém um valor maior que num e logo sai do
laço sem que seja repetida a instrução. Portanto sua última repetição é dada até
o valor de num. Com isso, seus limites também são de 1 e num. Para comprovar
essa atividade, é recomendável que utilize o Portugol IDE.
Para a atividade quatro, a alternativa correta é a (b). A expressão ((Nota + 1)
> Media) OU (NÃO Valor)) retorna um valor verdadeiro ou falso, o que a carac-
teriza como uma expressão lógica. Portanto a alternativa (a) está relacionada
a VII. Já a segunda propositura (b) é claramente um desvio condicional simples,
portanto a alternativa (b) está relacionada a V. A opção (c) é uma estrutura de
seleção composta, portanto, está relacionada a III. A expressão da opção (d)
retorna um valor numérico, portanto está relacionada a IV. Na opção (e) é bem
visível uma estrutura de repetição com iteração pré-definida, portanto está rela-
cionada a VI. A operação existente na opção (f) é uma atribuição, portanto está
relacionada a I. Na opção (g) é bem evidente uma estrutura de repetição com
teste realizado no início, portanto está relacionada a II.

FORBELLONE, André Luiz Villar; EBERSPÄCHER, Henri Frederico. Lógica de


programação: a construção de algoritmos e estruturas de dados. São Paulo:
Pearson Prentice Hall, 2005.

Anotações

unitins • análise e desenvolvimento de sistemas • 1º PeRÍodo 93


aula 7 • lógica PaRa PRogRamação

94 1º PeRÍodo • análise e desenvolvimento de sistemas • unitins


EQUIPE UNITINS
Organização de Conteúdos Acadêmicos
1ª edição Alex Coelho
Alexandre Tadeu Rossini da Silva
Evanderson Santos de Almeida
Marcelo Ribeiro de Oliveira
Vinícius de Miranda Rios
2ª edição rev. e ampl. Alexandre Tadeu Rossini da Silva
Evanderson Santos de Almeida
Coordenação Editorial Maria Lourdes F. G. Aires

Revisão Lingüístico-Textual Silvéria Aparecida Basniak Schier

Gerente de Divisão de Material Impresso Katia Gomes da Silva

Revisão Digital Helena Carolina Costa e Lima Prestes

Projeto Gráfico Irenides Teixeira


Katia Gomes da Silva
Ilustração Geuvar S. de Oliveira

Capas Igor Flávio Souza

Equipe EADCON
Coordenador Editorial William Marlos da Costa

Assistentes de Edição Ana Aparecida Teixeira da Cruz


Janaina Helena Nogueira Bartkiw
Lisiane Marcele dos Santos
Programação Visual e Diagramação Denise Pires Pierin
Kátia Cristina Oliveira dos Santos
Rodrigo Santos
Sandro Niemicz
William Marlos da Costa
Você está recebendo o material da disciplina de Computação Básica.
O conteúdo está disposto em sete aulas. Na primeira, veremos a história da
computação; na segunda, os componentes básicos do computador; e, na
terceira, você conhecerá os sistemas posicionais de numeração.
A continuidade dos estudos se dará por meio do estudo das operações
aritméticas no sistema binário de numeração, o que será visto na quarta aula;
na quinta, classificaremos software. A sexta aula será dedicada às noções

Apresentação
básicas de redes de computadores e banco de dados.
Para terminarmos os estudos referentes a esta disciplina, analisaremos,
na sétima aula, os profissionais que atuam na área de tecnologia da
informação.
Com o intuito de combinar reflexões teóricas com propostas práticas, este
material não só trará contribuições relevantes para o aprendizado da compu-
tação básica, como também motivará você para um trabalho mais prazeroso
com esse conteúdo.
Desejamos bons estudos!
Prof. Alexandre Tadeu Rossini da Silva
Prof. Evanderson S. de Almeida
EMENTA
História da computação. Componentes básicos do computador. Sistemas
posicionais de numeração. Operações aritméticas no sistema binário de
numeração. Classificação de software. Noções básicas de redes de compu-
tadores e banco de dados. Profissões na área de informática.
Plano de Ensino

OBJETIVOS
• Conhecer a história da computação, os componentes básicos do
computador e os sistemas posicionais de numeração.
• Reconhecer as operações aritméticas no sistema binário de
numeração.
• Adquirir noções básicas de redes de computadores e banco de
dados.
• Estudar a classificação de software.

CONTEÚDO PROGRAMÁTICO
• História da computação
• Componentes básicos do computador
• Sistemas posicionais de numeração
• Operações aritméticas no sistema binário de numeração
• Classificação de software
• Noções básicas de redes de computadores e banco de dados
• Profissões na área de informática
BIBLIOGRAFIA BÁSICA
BROOKSHEAR, J. Glenn. Ciência da computação: uma visão abrangente. 7. ed.
Porto Alegre: Bookman, 2004.
POLLONI. Enrico G. F.; FEDELI, Ricardo Daniel; PERES, Fernando Eduardo.
Introdução à ciência da computação. São Paulo: Thomson, 2003.
VELLOSO, Fernando de Castro. Informática: conceitos básicos. 7. ed. Rio de
Janeiro: Elsevier, 2004.

BIBLIOGRAFIA COMPLEMENTAR
ALMEIDA, Marcus Garcia de. Fundamentos de informática. 2. ed. Rio de Janeiro:
Brasport, 2002.
MARÇULA, Marcelo; BENINI FILHO, Pio Armando. Informática: conceitos e apli-
cações. São Paulo: Érica, 2005.

unitins • análise e desenvolvimento de sistemas • 1º PeRÍodo 99


aula 1 • comPutação básica

Aula 1
História da computação

Esperamos que, ao final desta aula, você seja capaz de:


• compreender a diferença entre dados analógicos e dados digitais;
• visualizar o panorama da evolução dos computadores, composto por
descobertas da ciência e das invenções de cientistas em diversos momentos
da história.

Como esta aula é a primeira de uma série e esta disciplina é a encarre-


gada de introduzir o estudo do conhecimento dos computadores e afins, não há
necessidade de que você tenha algum conhecimento específico da área compu-
tacional. Recomenda-se, porém, que estude atentamente, procurando traçar um
paralelo de cada assunto abordado com a realidade atual da tecnologia compu-
tacional, a fim de visualizar as semelhanças com os padrões tecnológicos do
mundo atual. As informações históricas aqui contidas servirão de base primor-
dial para a compreensão de aspectos tecnológicos computacionais conhecidos
e, até mesmo, as emergentes facetas que a comunidade científica da compu-
tação venha a apresentar.

Você visualizará, nesta aula, a linha do tempo da evolução dos compu-


tadores, os cientistas e os povos que contribuíram para sua formação. Vale a
pena lembrar que tal linha não será vista exaustivamente, uma vez que é invi-
ável discorrer sobre milhares de inventos e povos que contribuíram de alguma
forma para tal evolução, mas, sim, sobre aqueles que serviram de marco na
caminhada tecnológica. Antes disso, você compreenderá algo sobre o que
venha a ser um dado e uma informação, além de diferenciar dados analógicos
de dados digitais.

unitins • análise e desenvolvimento de sistemas • 1º PeRÍodo 101


aula 1 • comPutação básica

1.1 Dados
O ser humano sempre processou dados. Desde o momento em que um
cidadão antigo coletava pedras para representar a quantidade de ovelhas de
seu rebanho, ou escrevia nas paredes das cavernas, em cartões perfurados para
controlar o posicionamento e o movimento de agulhas do tear, ou até o tempo
em que grandes transações bancárias são efetuadas entre duas mega-empresas
situadas em continentes distintos, deparamo-nos com a definição de dados.

1.2 O que é dado e o que é informação?


Dados são pequenas unidades de informação que, ao serem aplicadas em
determinada direção, resultam em unidade de informação maior, de alguma utili-
dade mais apreciada, ou melhor, a informação em si. Por exemplo, se unirmos
os dados ‘R’, ‘$’ aos dados ‘1,50’, teremos a informação R$1,50. Repare que
os dados não parecem ter muito sentido para nós, porém o valor R$1,50 já
significa algo muito interessante.
Da mesma forma, o R$1,50 pode ser considerado um dado, se comparado a
uma lista de receitas e despesas em uma planilha de orçamento doméstico, que seria,
aqui, a informação. Os dados e seu processamento são elementos tão abstratos e,
ao mesmo tempo, de utilidade tão concreta que, por muitas vezes, temos dificuldade
em distinguir quando estão em uma situação que os envolva significativamente.

1.3 Escrita é armazenamento de dados


A necessidade de escrever, armazenar e comunicar informações por meio
de símbolos (repare, nessa situação, os dados!) é notada desde os primeiros
registros humanos que a arqueologia pode nos fornecer. A ciência entende
que a escrita é proveniente dos sumérios. As pinturas rupestres (observadas nas
cavernas, nos períodos em que se acredita que sejam dos primórdios da huma-
nidade), o uso do ábaco (uma máquina antiga de calcular, contemporânea ao
alfabeto, ambos criados na região do mediterrâneo) e de outros aparelhos ao
longo da história, até alcançar a tecnologia dos dias atuais, envolvendo micro,
mini e super computadores, mostram que o armazenamento de dados e seu
processamento sempre foram uma forma especial, usada pela humanidade,
para exercer controle do meio à sua volta.

1.4 Dados analógicos e digitais


Antes de prosseguirmos no tour pela linha do tempo da evolução dos compu-
tadores, entenderemos dados analógicos e digitais.

1.4.1 Dados analógicos


O Novo Dicionário Eletrônico Aurélio (versão 5.0) define o termo analógico
como “[...] dado representado por outras grandezas que podem variar segundo

102 1º PeRÍodo • análise e desenvolvimento de sistemas • unitins


aula 1 • comPutação básica

o sistema mecânico, elétrico ou eletrônico empregado”. De fato, informações


analógicas podem ter estados variáveis e indefinidos pelo homem.
Pensemos em um rádio de comunicação de uma torre de controle de
tráfego aéreo comunicando-se com o rádio de uma aeronave em pleno vôo.
Eles, supondo possuírem rádios analógicos, estão sintonizados em uma deter-
minada freqüência, por exemplo, 900,023Mhz. Repare que a freqüência de
comunicação tem três casas após a vírgula. Mas, mesmo que o receptor do rádio
do avião estivesse sintonizado a 900,0237Mhz (quatro casas após a vírgula),
a comunicação ainda assim seria possível entre torre e aeronave (talvez com
algum chiado). Isso se dá devido ao fato de que um valor analógico poderá
assumir infinitos estados, tal qual o comprimento de uma onda, propagando-
se no espaço. O valor tem largura tal que, embora possa ser detectado algum
padrão ou média de tamanho ou largura, tais medidas nunca serão exatas,
podendo ser subdividas em infinitas partes.
Outro exemplo é o próprio relógio analógico. O ponteiro dos segundos
percorre uma volta completa em 60 segundos. Logo, se dividirmos 360o por 60,
obteremos seis. Isso significa que o ponteiro percorre seis unidades da circunfe-
rência a cada segundo. Porém, analogicamente falando, poderemos dividir o
segundo em 100 centésimos; logo, se dividirmos 6 unidades da circunferência
por 100, teremos 0,06 unidades da circunferência sendo percorridos pelo
ponteiro a cada centésimo de segundo.
Creio que você já tenha deduzido que poderíamos ficar aqui calculando infini-
tamente quantas frações de circunferência estaríamos percorrendo em determinada
fração de tempo. Inclusive, se assim o fizéssemos, chegaríamos a um valor tão
pequeno que não teríamos uma nomenclatura oficial para definirmos tão pequenos
intervalos. Porém o fato é que eles existem e são divididos em infinitas partes.

1.4.2 Dados digitais


Quando olhamos o ponteiro dos segundos se movendo, por causa de nossa
capacidade humana limitada de capturar movimentos com clareza até, no
máximo, na casa dos centésimos de segundos, temos a impressão de que o
ponteiro se tele-transporta de seis em seis unidades de circunferência a cada
segundo. Porém, se filmarmos tal ponteiro em movimento e depois assistirmos ao
vídeo em câmera lenta, o que visualizaremos será justamente algo parecido com
o que vemos no ponteiro dos minutos ou das horas sem câmera lenta.
Os dados analógicos, por serem infinitos, chegam a atrapalhar os estudos dos
cientistas que, para possibilitarem a execução prática de suas teorias, precisam
discretizar, isto é, limitar a aplicação de um dado analógico infinito para um
conjunto de estados finitos. Retornando ao assunto do ponteiro dos segundos, o
cientista poderá, para tornar viável a aplicação de sua teoria, considerar que o
ponteiro realmente se tele-transporta de seis em seis unidades de circunferência
a cada segundo para, então, projetar o relógio digital, com o desenho de um

unitins • análise e desenvolvimento de sistemas • 1º PeRÍodo 103


aula 1 • comPutação básica

ponteiro no visor do relógio, que realmente aparece em pontos distantes de seis


em seis unidades a cada segundo.
Verifica-se, então, que uma informação analógica poderá ser infinitamente
mais rica que uma informação digital e, ao mesmo tempo, toda a infinidade de
riqueza que tem poderá ser desprezada sem prejuízo para a solução concreta
que foi alcançada, como é o caso do relógio digital. Basta, para ele, possuir 60
dígitos que a circunferência já estará modelada, ignorando-se os infinitos pontos
entre cada um dos 60 pontos requeridos.

1.4.3 Afinal, o que concluir sobre dados analógicos e digitais?


Conclua que uma informação ou dado digital, embora limitada, é capaz de ter
toda a precisão necessária para que um objetivo seja alcançado. E a prova disso
são os computadores que usamos na atualidade que são, na maioria, digitais. O
mundo em que vivemos é altamente analógico (embora o termo altamente analógico
seja uma redundância, fazemos questão de deixar dessa forma, para ficar claro a
infinidade de sua definição). Já os computadores digitais são limitados, porém essa
limitação poderá ser grande o suficiente para representar, sem perdas significativas
(até mesmo imperceptíveis ao ser humano), um modelo real, por exemplo, as fotos,
os vídeos e as músicas armazenadas e reproduzidas por computador. Um exemplo
de armazenamento digital sem perdas são os textos digitais.
Finalmente, após essas constatações, veremos a evolução da tecnologia
computacional ao longo do tempo.

1.5 Linha histórica da evolução tecnológica computacional


Ao longo desta viagem pela linha de evolução dos computadores, verifica-
remos que os inventores, a partir de uma necessidade pessoal e, não raro, cole-
tiva, motivaram-se a criar máquinas que facilitassem, agilizassem e até mesmo
permitissem determinadas atividades ou cálculos.
Nesta linha histórica, iremos considerar as subdivisões de acordo com
Marçula e Beninni (2005) e Tanenbaum (2007). Agruparemos os diferentes
momentos em que se sucedem as facetas da evolução científica e os distintos
componentes que foram usados como marco da posição digital da época.

1.6 “Iniciando do começo”


Os chineses inventaram o ábaco. Você já deve conhecê-lo, pois o mesmo é
muito divulgado como elemento didático nas escolas e citado em várias pales-
tras e conferências.
Embora a humanidade antiga soubesse armazenar números e símbolos, os
cálculos matemáticos, mesmo sendo realizados no ábaco, por exemplo, não eram,
na maioria das vezes, armazenados ou escritos. Assim não se poderia guardar
uma equação do segundo grau, por exemplo, e se discretizar alguma teoria. Mas,
com a ajuda dos hindus, que criaram o zero escrito, isso já se tornou possível.

104 1º PeRÍodo • análise e desenvolvimento de sistemas • unitins


aula 1 • comPutação básica

Acompanhe agora a linha do tempo sobre os principais acontecimentos


históricos tecnológicos da humanidade de 2000 a.C. até 1801 d.C.
• 2000 a.C. – O ábaco chinês é a primeira ferramenta de cálculo de
que se tem notícia. É uma calculadora primitiva, composta por varetas
e anéis de madeira, representando unidades, dezenas e centenas. Os
chineses não sabiam que estavam fornecendo uma grande ajuda teórica
na organização dos computadores. O ábaco é muito popular e até hoje
ainda é usado, principalmente em países orientais.
• 1614 – Logaritmos são definidos por John Napier, nascido na Escócia.
• 1623 – Wilhelm Schickard cria a primeira máquina de calcular, de
acordo com os historiadores, pois, infelizmente, ela desapareceu durante
a guerra dos 30 anos. Ela realizava operações de divisão e multipli-
cação e tinha uma estrutura mecânica baseada em rodas dentadas.
• 1644 – Blaise Pascal (1623-1662) constrói o que a história entende
como a primeira calculadora, batizada por ele de Pascalene ou
Pascalina. Ele a criou para auxiliar seu pai no cálculo de impostos.
Tal máquina também usava uma roda dentada contendo justamente
dez dentes, um para cada algarismo decimal (ou dígito decimal! Uma
máquina digital!). A pascalina realizava subtrações e somas.

Saiba mais

• 1673 – Gottfried Wilhelm Leibnitz (1646-1716), matemático e filósofo,


melhorou o projeto da Pascalina, construindo, assim, uma máquina
capaz de dividir, multiplicar, subtrair, somar e calcular a raiz quadrada.
Os historiadores confirmam seu pensamento: “Ele sonhava que um dia
todo o raciocínio pudesse ser substituído pelo girar de uma alavanca”.
• 1801 – Joseph Marie Jacquard (1752-1834) foi um mecânico nascido
na França que criou uma máquina mecânica de tear (a primeira máquina
programável, controlada por cartões perfurados, tamanho grande) capaz
de criar bonitos desenhos enredados no próprio tecido. Sua invenção fez
muito sucesso na França e, em sete anos, milhares de máquinas de tear já
estavam em operação no país.
Até aqui, podemos dizer que chegamos ao fim da era mecânica. Veja como
ela trouxe a base sem a qual não teríamos chegado aonde estamos hoje, as
malhas de nossas roupas não poderiam ter lindos e detalhados enfeites intrín-
secos e costurados. Vamos prosseguir para verificar como as máquinas e as
descobertas daquela era influenciaram na continuidade do processo evolutivo.

unitins • análise e desenvolvimento de sistemas • 1º PeRÍodo 105


aula 1 • comPutação básica

1.7 A era dos dígitos


No decorrer do processo, logo vemos a necessidade de utilizar computa-
dores para realizar atividades repetitivas e rotineiras, principalmente cálculos
de precisão diferencial. No século XIX, vemos, por exemplo, que as invenções
de Charles Babbage expandem a visão do tamanho do potencial computacional
para a humanidade. Prossigamos em nossa caminhada...
• 1820 – Charles Babbage (1792-1871), matemático nascido na Inglaterra,
projeta a máquina analítica, uma máquina diferencial calculadora de
polinômios. Essa máquina calcularia automaticamente, além de somas,
subtrações e outros cálculos básicos, a conversão de números de uma
base para outra (da base binária para a decimal, por exemplo). Babbage
ficou conhecido com o pai do computador, uma vez que seu invento muito
se aproximava do conceito de computador que temos na atualidade.
Tal máquina, que fora financiada por algum tempo pelo governo britânico,
era puramente mecânica, sendo composta por um engenho central (olha só, uma
CPU!), uma memória, engrenagens e alavancas. Utilizava cartões perfurados e
possuía dispositivos de entrada e saída de dados.

Saiba mais

Por fim, infortunadamente, Charles Babbage parecia estar à frente da tecno-


logia de sua época, pois não estava suficientemente avançada para fornecer a
base de que ele precisava para progredir em suas pesquisas e construir peças
mecânicas de que precisaria. O governo britânico acabou por suspender o finan-
ciamento de Babbage e, com isso, o cientista não teve condições de finalizar
o próprio projeto e a calculadora analítica nunca foi construída. Vale a pena
ressaltar que as máquinas, até o século XIX, funcionavam na base decimal (e
hoje funcionam na base binária!).
No século XX, a máquina de Babbage finalmente foi construída (e hoje,
inclusive, por universidades, com certo sabor saudosista), porém Babbage não
viveu tempo suficiente para ver seu invento concretizado.
• 1842 – Ada Byron (1815-1852), condessa de Lovelace, filha de Lord
Byron (poeta), foi considerada a primeira programadora da história (hoje,
existe uma linguagem batizada de Ada, em sua homenagem), inclusive,
antes mesmo do computador, como conhecemos, ter sido inventado. Ela
escreveu várias instruções para serem interpretadas pela máquina analítica
de Babbage. O Conceito de Subrotina partiu dela, que também aprendeu

106 1º PeRÍodo • análise e desenvolvimento de sistemas • unitins


aula 1 • comPutação básica

a valorizar os laços de repetições (loop). Bastava, em algum lugar de um


cartão, inserir informações para que a leitora de cartões retornasse para
outro cartão anterior, concretizando-se, assim, o efeito de repetição de
uma seqüência de instruções. Ada também imaginava as vantagens, caso
pudesse trabalhar com os desvios condicionais (if).
• 1854 – George Boole (1815-1864) publicou as bases da lógica booleana
(booleana em homenagem ao próprio cientista). Tais bases determinam
que equações matemáticas algébricas podem expressar os conceitos
da lógica, em que variáveis (unidades de memória que armazenam
valores) podem assumir os valores 0 ou 1 (ex: verdadeiro ou falso).
Graças a essa contribuição de George Boole, os cientistas puderam pensar
em um computador que fosse utilizável para qualquer fim.

1.8 Máquinas de computar


Vejamos, a seguir, os principais eventos históricos que marcaram o desenvol-
vimento das máquinas de computar:
• 1889 – As idéias de Charles Babbage são mescladas às práticas com
cartões perfurados por um estatístico americano preocupado com a
demora na contagem da população. Até então, a contagem completa
da população norte-americana demorava sete anos. Após a aplicação
computacional de Babbage, com a máquina de Hollerith (inclusive
esse era, e ainda é, o nome dado aos contracheques de pagamento
de funcionários), o tempo para contagem populacional reduziu pela
metade, três anos e meio.
• 1896 – Aqui, a companhia de máquinas de tabular é criada (Tabulating
Machine Company).
• 1924 – Bem, se foi difícil saber que empresa era a que foi citada ante-
riormente, saiba que neste ano ela muda seu nome para International
Business Machine, ou a famosa IBM.
• 1904 – A válvula é criada por John A. Fleming. Tal componente é
composto por um envoltório de vidro que contém dois eletrodos. A
válvula interrompe ou permite a passagem de corrente elétrica, depen-
dendo de como a energia passa por dentro dela. Veja a utilidade disso:
com corrente elétrica, podemos assumir que o valor dessa válvula é
“um”; sem corrente elétrica, podemos dizer que o valor dela é “zero”.
• 1937 – Allan M. Turing, utilizando-se da álgebra de Boole, da tecno-
logia de entrada e saída via cartões perfurados e da válvula, expõe
minuciosamente uma máquina computacional de propósito múltiplo.
Essa iniciativa foi a pioneira no sentido de alguém, o próprio usuário

unitins • análise e desenvolvimento de sistemas • 1º PeRÍodo 107


aula 1 • comPutação básica

(ou seja, não vem definido de fábrica), poder decidir que cálculos ou
operações a máquina irá realizar. A consciência com o conceito de
programação que temos hoje não é mera coincidência.

1.9 Evolução histórica dos computadores


De acordo com a evolução história dos computadores, é possível agrupar
quatro diferentes gerações, notadas sempre por um marco, um evento revolu-
cionário que permitiu à tecnologia saltar consideravelmente em direção a um
estado mais evoluído. Vejamos essas gerações nos próximos tópicos.

1.9.1 Primeira geração de computadores: válvula (1945-1955)


Acompanhe, a seguir, os principais marcos históricos da primeira geração
de computadores.
• 1946 – John Presper Eckert (1919-1995) e John Mauchly (1907-
1980), ambos engenheiros, projetaram o ENIAC: Eletronic Numeric
Integrator And Calculator. Ele possuía 18.000 válvulas, 1.500 relés,
pesava 30 toneladas e consumia 140Kw de energia (ocupava o
tamanho de um prédio pequeno, com 90m2 e conseguia realizar
500 operações de multiplicação por segundo, ou 5.000 somas, no
mesmo período de tempo). O ENIAC foi projetado para fins bélicos
(iniciou no apogeu da Segunda Guerra Mundial), porém somente
após vários meses o término da guerra, em 1946, ele teve sua cons-
trução concluída.
O ENIAC dispunha, para sua programação, de 6.000 interruptores de ajuste
e uma imensa quantidade de soquetes. Tanenbaum (2007, p. 32) compara-o a
“Uma verdadeira floresta de cabos e jumpers”. Programar em painéis elétricos
realmente era difícil, lento, tedioso e mecânico.
A partir dessas dificuldades, John Von Neumann propôs um modelo conhe-
cido como Máquina de Von Neumann. Esse modelo é composto por cinco partes
básicas: uma unidade de controle, uma memória de trabalho (armazena os
dados), unidades de entrada e saída (impressora) e CPU, composta por uma
unidade lógica aritmética e por um acumulador.

1.9.2 Segunda geração de computadores: transistores (1955-1965)


Isso mesmo, os transistores (inventados nos Laboratórios da Bell, em 1948
por Willian Shockley, Walter Brattain e Jhon Bardeen) substituíram as válvulas.
A válvula era e é uma grande consumidora de energia elétrica. O transistor é
muito mais rápido e barato que a válvula, além de consumir bem menos energia
elétrica e ser mais durável. Os Estados Unidos conseguiram, por exemplo, com
o uso de transistor, sair à frente da antiga URSS na corrida espacial.
Acompanhe, a seguir, os principais marcos históricos da segunda geração
de computadores.

108 1º PeRÍodo • análise e desenvolvimento de sistemas • unitins


aula 1 • comPutação básica

• 1963 – O monitor de vídeo, talvez, hoje, o mais conhecido periférico


de saída, começa a ser usado como tal. Antes dele, os resultados de
processamentos eram vistos impressos em papel.
• 1964 – Agora é a vez de o mouse aparecer. Ele foi apresentado por
Douglas Engelbart como um periférico de entrada de dados. Antes dele,
a entrada somente poderia ser feita via os famosos cartões perfurados.
John Kemeny cria a linguagem BASIC que, no momento, servia como um
software que intermediava a relação entre a linguagem de programação e o
hardware. Note que isso muito se assemelha ao sistema operacional (popular-
mente representado pelo Microsoft Windows ou GNU/Linux).

1.9.3 Terceira geração de computadores: circuitos integrados (1965 – 1980)


O circuito integrado foi inventado em 1958 por Robert Noyce. Dessa vez,
o tal circuito integrado não é um substituto do transistor, mas sim um conglome-
rado de transistores, mais especificamente dezenas e até centenas deles, em um
pequeno espaço (o chip) de silício.
Nessa fase, verifica-se o famoso fenômeno da miniaturização dos computa-
dores. Com o CI (circuito integrado), tornou-se possível a construção de compu-
tadores menores, mais rápidos e mais baratos do que os da geração anterior já
transistorizados. A mudança foi drástica: computadores que tinham tamanhos de
salas reduziram ao tamanho de geladeiras, ainda grande, se comparados com
os de hoje, certo? Mas concorde que o impacto, aqui, já foi gigantesco para a
época que, aliás, não é tão distante de hoje.
Acompanhe, a seguir, os principais marcos históricos da terceira geração
de computadores.
• 1967 – A primeira calculadora digital, precursora das calculadoras de
bolso de hoje, apresentada pela empresa Texas Instruments. Tal máquina
realizava as quatro operações fundamentais: soma, subtração, multipli-
cação e divisão.
• 1968 – A empresa Intel (hoje, a maior fabricante de microprocessadores
do mundo) é criada por Robert Noyce, Andy Groove e Gordon Moore.
• 1969 – Nasce a rede Arpanet, por meio da interligação de quatro
universidades, pelo departamento de defesa dos Estados Unidos. A
Arpanet é a precursora da WWW – rede mundial de computadores ou,
simplesmente, a internet.
• 1970 – O sistema operacional (SO) UNIX (curiosidade: o conhecido
GNU/Linux de hoje é um UNIX) é desenvolvido por Ken Thompson e
Dennis Ritchie. O UNIX foi o primeiro SO portável (sistema que pode
funcionar em diferentes tipos de computadores) a ser desenvolvido.
Até aqui, você já deve ter percebido que convive com boa parte dessa tecno-
logia. Estamos nos aproximando da geração atual com a qual convivemos.

unitins • análise e desenvolvimento de sistemas • 1º PeRÍodo 109


aula 1 • comPutação básica

1.9.4 Quarta geração de computadores: integração em escala muito grande


(1973, 1980-?)
Na terceira geração, notamos centenas de transistores em um único chip.
Agora, na quarta geração, os cientistas obtiveram dezenas de milhares, centenas
de milhares e milhões de transistores em um único chip, VLSI (Very Large Scale
Integration – integração em escala muito alta), ou seja, trata-se, ainda, de um
circuito integrado, porém, em um nível de miniaturização muitíssimo elevado. A essa
altura da evolução, é sensato que o chip tenha mudado de nome: microchip.
Se o microchip é o marco dessa geração, logo os computadores construídos
com tais são os microcomputadores. Dessa vez, as máquinas alcançaram tama-
nhos muito menores, evoluindo de geladeiras a cadernos (isso mesmo, tradu-
zindo, notebooks), e indo a um tamanho ainda menor.
Acompanhe, a seguir, os principais marcos históricos da quarta geração de
computadores.
• 1973 – O termo PC, personal computer ou computador pessoal, é utili-
zado pioneiramente quando a Xerox lança um computador batizado
como Alto, com fins de uso pessoal. Repare nas características desse
PC: compatível com uso de mouse, tem um nível alto de conectividade
em rede e dispõe de interface gráfica. Realmente, características que
podem ser usadas para descrever nossos computadores.
• 1975 – O BASIC é adaptado para rodar nos microcomputadores daquele
tempo (por meio do conhecido Bill Gates e Paul Allen).
• 1976 – Nasce a Apple (significa “maçã”, que é, inclusive, a logomarca
da companhia) criada por Steve Jobs e Stephen Wozniak, com o intuito
de se projetar PCs.
• 1977 – O Apple 2, o Atari 500, e o Commodore 64 são lançados respec-
tivamente pelas empresas Apple, Atari e Commodore. O Apple 2 foi
consagrado como o primeiro sucesso de mercado na área de compu-
tação pessoal.
• 1980 – O primeiro computador portátil, um avô para o notebook
Osborne-1 com seus 11 quilos, surge no mercado. Um ano depois do
Osborne-1, a Compaq se estabelece como empresa líder no mercado
de portáteis, lançado sua cópia clonada, portátil, do IBM-PC.
A arquitetura RISC, Reduced Instruction Set (conjunto reduzido de instruções),
começa a ser aceita no lugar de dificultosas arquiteturas (CISC). Abordaremos
sobre RISC e CISC na próxima aula.
• 1981 – O IBM-PC é lançado pela IBM, com o processador Intel 8088 e o
SO MS-DOS, feito pela Microsoft. Esse PC surge com desempenho (veloci-
dade e memória) muito superior ao dos concorrentes. Você provavelmente

110 1º PeRÍodo • análise e desenvolvimento de sistemas • unitins


aula 1 • comPutação básica

possui um PC em sua casa, local de trabalho ou estudo. Ele é um sucesso que


permanece até os dias de hoje. A arquitetura IBM PC foi aberta ao público
pela própria empresa. O resultado disso foi a perda de mercado pela IBM
(ruim para a IBM) e a popularização do padrão IBM para o mercado (bom
para o mundo, para nós que somos usuários). É notável a popularidade
do padrão IBM (aberto) quando comparamos, por exemplo, à populari-
dade do Apple (padrão fechado, proprietário). Quem lucrou mesmo com
essa história foi a Microsoft, uma vez que, para cada computador vendido,
mesmo de arquitetura aberta, era quase que provável que uma licença de
uso do MS-DOS seria vendida para uso juntamente com a máquina.
• 1992 – O computador Alpha, revolucionário, de 64 bits, é lançado pela
DEC. Um computador RISC, cuja velocidade ultrapassava e posiciona-
va-se muito mais à frente da velocidade de qualquer outro computador
pessoal da época.
A história registra o intervalo de tempo de dez anos para que os compu-
tadores RISC de 64 bits fizessem sucesso no mercado, atuando principalmente
como servidores de alto desempenho.
Chegamos ao fim desta primeira aula. E quanta informação você recebeu!
Muito do que foi visto já fez ou ainda faz parte do seu dia-a-dia, de seus pais
ou de professores mais experientes, afinal convivem com a quarta geração. E,
a partir de agora, desafiamos você a relacionar na história todos os tipos de
computadores com os quais você venha a ter contato. É hora de situar-se na
história para compreender cada vez mais o porquê de nossa situação tecnoló-
gica atual e poder projetar tendências de futuro para ela.

Nesta aula, você pôde compreender o que são dados e as diferenças entre
dados analógicos e digitais. Fez uma viagem no tempo analisando as invenções
que contribuíram para o surgimento do computador.
Compreendeu que, de acordo com a evolução histórica dos computadores,
é possível agrupar quatro diferentes gerações, notadas sempre por um marco,
um evento revolucionário, que permitiu à tecnologia saltar consideravelmente em
direção a um estado mais evoluído.
Você aprendeu que, na primeira geração, os computadores eram baseados
em válvulas. Nessa geração, o primeiro computador criado foi o ENIAC. Já na
segunda geração, você viu que os computadores eram baseados em transistores
que eram muito mais rápidos e baratos que as válvulas, além de consumirem
muito menos energia elétrica. Na terceira geração, os computadores eram base-
ados em circuitos integrados, que consistiam em um conglomerado de transis-
tores em um pequeno chip de silício. Por fim, na quarta geração, sugiram os

unitins • análise e desenvolvimento de sistemas • 1º PeRÍodo 111


aula 1 • comPutação básica

computadores integrados em grande escala, ou seja, milhões de transistores em


um único chip, chamados de microchip.

1. Como você diferenciaria dados analógicos de dados digitais?

2. Leia atentamente as afirmações a seguir sobre a evolução histórica dos


computadores.
I. Os computadores da primeira geração eram baseados em transistores.
II. A utilização de válvulas foi uma característica marcante dos computa-
dores da segunda geração.
III. Os computadores da terceira geração foram marcados pela utilização
de circuitos integrados.
IV. A palavra microchip resume a tecnologia dos computadores da quarta
geração de computadores.

Assinale a alternativa correta.


a) Somente as afirmativas I e III estão corretas.
b) Somente a afirmativa I está incorreta.
c) Somente as afirmativas III e IV estão corretas.
d) Todas as afirmativas são corretas.

3. Qual a relação da válvula com a álgebra booleana?

4. Sobre as tecnologias adotadas em cada geração da evolução histórica dos


computadores, assinale a afirmativa incorreta.
a) A válvula era uma grande consumidora de energia elétrica.
b) Os transistores eram muito mais rápidos, baratos e consumiam muito
menos energia que as válvulas.
c) O microchip é um tipo de circuito integrado, porém em um nível de
miniaturização muitíssimo elevado.
d) O circuito integrado foi um substituto do transistor que possibilitou a
miniaturização dos computadores.

Na atividade um, você expôs que dados analógicos podem assumir diversos
valores em um dado intervalo numérico, e os dados digitais assumem um número
limitado de valores nesse mesmo intervalo numérico, contudo não causa nenhum

112 1º PeRÍodo • análise e desenvolvimento de sistemas • unitins


aula 1 • comPutação básica

tipo de prejuízo para os cálculos executados com esse intervalo. Se sua resposta
não contemplou esse princípio, sugerimos que retorne ao conteúdo sobre dados
digitais e analógicos e releia com atenção sobre cada um deles. Caso sua
resposta tenha remetido à idéia exposta, parabéns! Você atingiu o objetivo de
compreender a diferença entre dados analógicos e dados digitais.
Na atividade dois, a resposta correta é a alternativa (c). Se essa foi a sua
resposta, parabéns! Você acertou e atingiu nosso objetivo de conhecer o panorama
da evolução dos computadores, composto por descobertas da ciência e invenções de
cientistas em diversos momentos da história. Caso esta não tenha sido sua resposta,
sugiro que você retorne ao conteúdo sobre a evolução histórica dos computadores
e reveja com atenção as características marcantes de cada geração.
Na atividade três, mencionou que a válvula interrompe ou permite a
passagem de corrente elétrica, dependendo de como a energia passa por dentro
dela. Com isso, percebemos dois estados físicos definidos: com corrente elétrica,
temos o bit “um” (verdadeiro); sem corrente elétrica, o bit “zero” (falso). Eis aí
dois estados, o suficiente para realizar quaisquer cálculos baseados em álgebra
booleana. Se você conseguiu transmitir essa idéia, parabéns, atingiu o obje-
tivo de conhecer o panorama da evolução dos computadores. Caso não tenha
conseguido, volte ao conteúdo sobre a evolução histórica e releia com atenção
sobre as válvulas e a álgebra booleana.
Na atividade quatro, a resposta é a alternativa (d). Se essa foi a sua resposta,
parabéns! Você atingiu nosso objetivo de conhecer o panorama da evolução dos
computadores, composto por descobertas da ciência e invenções de cientistas
em diversos momentos da história. A alternativa (d) está incorreta, pois o circuito
integrado não é um substituto para os transistores e sim um agrupamento de
muitos transistores em um pequeno espaço de silício (chip). Caso não tenha acer-
tado a resposta, sugerimos que retorne ao conteúdo sobre a terceira geração de
computadores na evolução histórica dos computadores e reveja com atenção as
características marcantes dessa geração.

MARÇULA, Marcelo; BENINI FILHO, Pio Armando. Informática: conceitos e apli-


cações. São Paulo: Érica, 2005.
TANENBAUM, Andrew S. Organização estruturada de computadores. São
Paulo: Pearson/Prentice Hall, 2007.

Agora que você já visualizou a linha do tempo da evolução dos compu-


tadores, na próxima aula, você estudará sobre a estrutura física (hardware)

unitins • análise e desenvolvimento de sistemas • 1º PeRÍodo 113


aula 1 • comPutação básica

básica dos computadores da atualidade. Conhecer as facetas internas dos


computadores modernos lhe dará maior embasamento e autoridade tanto para
discutir sobre eles quanto para desenvolver programas que sejam executados
nessas plataformas.

Anotações

114 1º PeRÍodo • análise e desenvolvimento de sistemas • unitins


aula 2 • comPutação básica

Aula 2
Componentes básicos do computador

Esperamos que, ao final desta aula, você seja capaz de:


• conhecer os principais componentes formadores do computador moderno;
• compreender, conceitualmente, o modo de execução de instruções de
um computador.

Chegamos à segunda aula, que abordará um tema conceitual, porém não


menos importante para o curso, que recomenda o estudo da aula anterior. Esse
estudo se faz necessário devido ao fato de ser a base teórica para uma melhor
compreensão dos componentes atuais formadores do computador moderno, que
serão estudados nesta aula. Ter conhecimentos sobre, por exemplo, a máquina
Von Neumann, o armazenamento de dados e outros importantes conceitos é
condição necessária para que você possa ter o melhor proveito desta e de outras
aulas de nossa disciplina e, conseqüentemente, do curso.

Você conhecerá, nesta aula, os componentes internos e externos que formam


o computador contemporâneo. Veremos como esses componentes se relacionam
entre si para que o conceito de computador se torne uma realidade prática e,
portanto, útil para a resolução de problemas.

2.1 Componentes do computador


O computador, relembrando a máquina Von Neumann, é composto por:
CPU (nesse caso, representada pela unidade lógica aritmética e pela unidade
de controle), memória e unidades de entrada e saída.
Andrew Tanenbaum (2007, p. 45) afirma que “um computador digital
consiste em um sistema interconectado de processadores, memórias e disposi-
tivos de entrada/saída”.

unitins • análise e desenvolvimento de sistemas • 1º PeRÍodo 115


aula 2 • comPutação básica

Atualmente, os computadores seguem esse mesmo princípio de composição.


Eles se diferem do modelo de Von Neumann no aspecto do processador, ou
CPU, que, em nossa realidade, estão em um único microchip, se é que isso, um
reposicionamento, pode ser considerado uma diferença significante.
Os componentes principais do computador são: CPU, memória e a placa
mãe. Em resumo, a CPU é responsável por processar os dados. A memória tem
a funcionalidade de armazenar os dados pré e pós-processados. E a placa
mãe é o barramento (canal de comunicação). A CPU e a memória se localizam
conectadas por meio de slots (conectores), permitindo, assim, que o processador
acesse os dados na memória, processe-os e retorne-os para a memória.

2.2 Periféricos (dispositivos de entrada/saída)


Existem ainda os componentes responsáveis pela entrada e saída de dados
ao computador, aos quais chamamos de periféricos.
Cruz (1997, [s.p.]) afirma que periféricos “são os dispositivos usados para
fazer a entrada e a saída dos dados que serão processados”. Nesse contexto,
o termo periférico pode ser aplicado a qualquer equipamento acessório que por
ventura seja conectado ao computador.
Podemos citar como exemplos de periféricos as impressoras, scanners (digi-
talizadores), leitores e/ou gravadores de CDs e DVDs, leitores de cartões e
disquetes, mouse, teclado, câmeras de vídeo, entre outros.
Cada periférico tem a sua função definida e executa-a ao enviar tarefas
ao computador, de acordo com essa função. Entre os muitos periféricos
existentes, podemos citar o teclado (que envia ao computador informações
digitadas pelo usuário), o mouse (que permite o envio de informações pela
pressão de botões), a impressora (que recebe informação do computador e
imprime essa informação no papel), a placa de som (que recebe informações
elétricas vindas do processador e envia às caixas), os sistemas sensíveis ao
toque, calor, luz, modem, óculos de simulação, controladores de jogos (joys-
tick), entre outros.

2.2.1 Tipos de periféricos


Existem três tipos periféricos, que variam conforme sua forma de utilização.
São eles: os periféricos de entrada, de saída e de entrada e saída.
Vejamos a seguir um pouco mais sobre cada tipo de periféricos.
a) Periféricos de entrada (input): é responsável pela tradução dos códigos
utilizados pelos equipamentos em códigos compreensíveis pelo compu-
tador, como, por exemplo, o teclado numérico, microfone, leitor de
código de barra, webcam, teclado e mouse, identificador digital, scanner
de mão, mesa digitalizadora, joystick e gamepad, entre outros.

116 1º PeRÍodo • análise e desenvolvimento de sistemas • unitins


aula 2 • comPutação básica

b) Periféricos de saída (output): é responsável pela tradução dos códigos


do computador para que o operador consiga compreendê-los, como,
por exemplo, impressora, monitor, caixas de som, entre outros.
c) Periféricos de entrada e saída (input/output): agrega tanto as funções de
periféricos de saída quanto de entrada, como, por exemplo, modem, multi-
funcionais, monitor touchscreen, dispositivos de imagem, entre outros.

2.3 A Memória principal – RAM (random access memmory)


O termo RAM, do inglês Random Access Memmory (Memória de Acesso
Aleatório), trata-se da memória de trabalho com a qual o processador se comu-
nica. O termo aleatório quer dizer que a memória poderá ser acessada para
operações de escrita e leitura, em qualquer posição. Existem milhares de posi-
ções de memória que dependem da capacidade do pente de memória instalado
em sua placa mãe.
Considere, para efeito didático, uma posição de memória em um pente
como sendo um dos apartamentos de um prédio. Cada apartamento pode conter
apenas um morador (em termos técnicos, um caractere, por exemplo, a letra “A”).
O processador poderá, então, dependendo do programa que está executando,
inserir um caractere em uma posição de memória, retirar um caractere de uma
posição, substituir um caractere que estava previamente armazenado em uma
posição por outro caractere, copiar um caractere de uma posição de memória
para outra da posição de memória. Repare que a memória tem de ser de rápido
acesso, uma vez que os computadores perfazem milhões de acessos à memória
durante o tempo em que estão funcionando, dependendo dos programas que
estiverem sendo executados.
Um exemplo didático de uso da memória seriam os seis passos descritos a
seguir.
1. O processador insere o número um na posição de memória 002.
2. O processador insere o número dois na posição de memória 003.
3. O processador lê o número contido na posição de memória 002.
4. O processador lê o número contido na posição de memória 003.
5. O processador soma os números lidos e armazena o resultado na
posição de memória 101.
6. O processador insere o número três na posição de memória 003.
Você é capaz de dizer qual o resultado da soma armazenado na posição de
memória 101? Se você respondeu três, acertou. Uma possível resposta, porém,
errada, seria cinco. Está errada uma vez que, embora o processador tenha alte-
rado o conteúdo na posição 003 de dois para três, isso em nada influenciou o
conteúdo da posição 101.

unitins • análise e desenvolvimento de sistemas • 1º PeRÍodo 117


aula 2 • comPutação básica

A memória principal (RAM) não processa. Ela é um repositório de dados,


acessada pelo processador. Ela também é volátil, ou seja, se você desligar
o computador, todos os dados contidos nela irão se perder. A propósito, há
memória que não se perde. Os documentos que digitamos, por exemplo, e
ficam armazenados, são de outra natureza. Documentos de textos e planilhas,
sistema operacional e outros dados persistentes ficam armazenados em disposi-
tivos de memória de massa, por exemplo, os discos rígidos, conhecidos também
como memória secundária.
Estudemos, na seqüência, o processador, que tem como função a comu-
nicação, por meio da via de comunicação fornecida pela placa mãe, com a
memória principal.

2.4 Unidade central de processamento – UCP


A Unidade Central de Processamento é o principal componente do compu-
tador. Você pode referir-se a ela como CPU – Central Processing Unit –, UCP –
Unidade Central de Processamento – ou, simplesmente, processador.
Um computador poderá até sobreviver, conceitualmente, sem memória ou
mesmo sem uma placa mãe, mas, se não possuir um processador, não pode ser
considerado como um computador propriamente dito. Talvez seja outro equipa-
mento como um pen-drive, mas nunca um computador. O termo computador nos
remete ao verbo computar, que quer dizer calcular ou, mais especificamente,
executar cálculos e operações próprias de um computador. Ora, se um compu-
tador é aquilo que realiza cálculos, logo presumimos que ele precisará ter uma
espécie de cérebro eletrônico, ou uma cabeça eletrônica, que possa pensar ao
menos o suficiente para resolver os cálculos para os quais foi designado para
realizar.
A CPU age, então, como o cérebro do computador. Ela tem a função: de
obter dados ou instruções de algum lugar que, no caso de um computador, é a
memória de trabalho (será vista ainda nesta aula); de verificar essas instruções;
e depois executá-las, uma após a outra.
Vamos desmistificar o processador aqui: ele não é um elemento mágico que
busca as informações e as processa de forma desconhecida. No parágrafo ante-
rior, utilizamos verbos de ação, como obter, verificar e executar. Para cada um
desses verbos, existem barramentos e circuitos elétricos e eletrônicos que desem-
penham e possibilitam a comunicação entre os componentes internos ao próprio
processador. Porém não é aconselhável, por fins didáticos, que você se aprofunde
no nível de projetos eletrônicos de construção de um processador, pois esse não
é o objetivo deste curso. Projetar processadores, bem como circuitos eletrônicos
e componentes para computadores, como interfaces de vídeo tridimensionais ou
modems para acesso a internet, etc., são objetivos de cursos específicos como
Engenharia Eletrônica e Engenharia da Computação.

118 1º PeRÍodo • análise e desenvolvimento de sistemas • unitins


aula 2 • comPutação básica

Diferentes partes compõem a UCP: UC – Unidade de Controle –, ULA –


Unidade Lógica Aritmética – e registradores – pequenas memórias de alta velo-
cidade. Vejamos essas partes nos próximos tópicos.

2.4.1 Unidade de Controle – UC


A Unidade de Controle tem a função de obter dados e instruções na memória
principal, determinando sua tipologia. Ela é a porta de entrada e saída que o
processador usa para comunicar-se, via sinais elétricos, com a memória prin-
cipal. Por exemplo, se a ULA precisar armazenar o número binário 0012 na
posição de memória 0002, ele solicitará à UC que realize tal procedimento.

2.4.2 Unidade Lógica Aritmética – ULA


A Unidade Lógica Aritmética efetua diversas operações matemáticas, como
adição e subtração, multiplicação e divisão, e de lógica booleana, como o OR
(ou) booleano. Lembra-se de George Boole? Se não, aconselhamos que faça
uma pequena pausa neste ponto de leitura, retorne à aula anterior e reveja as
explanações sobre George Boole e a lógica binária.

2.4.3 Registradores
Os registradores são pequenas memórias que servem para auxiliar o proces-
sador, armazenam resultados temporários, durante o processo de cálculo. Pense
que o processador teria de se esforçar muito mais para realizar operações sem
esses registradores internos, pois, se assim fosse, teria de utilizar a memória
principal, que está mais longe, externa ao processador.
Existem registradores com funções genéricas e específicas que são muito
mais rápidos do que aqueles que são preparados para responder a apenas um
tipo fixo de operação, enquanto os genéricos executam diversos tipos de opera-
ções, tal qual a memória principal. Os registradores são memórias internas para
uso geral, usados pela ULA para armazenar dados (caracteres, números biná-
rios) que estão sendo processados.
São exemplos de registradores gerais: AX, BX, usados para armazenar
números binários. São exemplos de registradores específicos: IP, Instruction
Pointer, usados para armazenar a referência do endereço da memória principal
(RAM), que contém a próxima instrução a ser executada.

2.5 Executando-se uma instrução


A memória principal armazena dados que serão buscados pela UC (unidade
de controle) da CPU e adicionados nos registradores. Em seguida, a ULA realiza
operações sobre os dados que estão nos registradores, também armazenando o
resultado das operações neles. Por fim, UC copia o valor dos registradores para
dentro de um endereço (posição) de memória principal.

unitins • análise e desenvolvimento de sistemas • 1º PeRÍodo 119


aula 2 • comPutação básica

A enumeração a seguir, denominada comumente de ciclo buscar-decodi-


ficar-executar, representa uma seqüência de pequenas fases que são reprodu-
zidas para cada instrução executada pela CPU.
1. Transportar a instrução seguinte da memória principal para o registrador.
2. Modificar o ponteiro de instrução (IP), indicando a próxima instrução.
3. Estabelecer qual é o tipo da instrução transportada.
4. Estabelecer onde a seqüência de dados se encontra, caso a instrução
utilize uma seqüência de dados na memória principal.
5. Transportar a seqüência de dados, se necessário, para algum regis-
trador da UCP.
6. Executar a instrução.
7. Retornar à fase 1 (isso fará com que se execute a próxima instrução,
contida no registrador IP, alterado pela etapa 2).
Os processadores não são todos iguais. Alguns são capazes de executar um
conjunto maior de instruções do que outros. Vamos conhecer a seguir um pouco
mais sobre estes tipos de processadores.

2.6 RISC versus CISC


Ao longo da história, a Apple projetou seu processador e acabou compe-
tindo com a Intel, também com um processador próprio. Ambas competiam pelo
espaço no mercado de processadores. A Intel lidera essa concorrência de forma
geral, principalmente no que se diz respeito aos computadores pessoais. Você
deve estar habituado a ouvir sobre os processadores Intel, por exemplo, Pentium,
Celeron, entre outros.
Existe uma diferença básica entre os dois processadores dessas duas compa-
nhias aqui: a quantidade de instruções que eles podem realizar. A Apple utiliza
um conjunto reduzido de instruções (RISC), enquanto a Intel utiliza um conjunto
complexo de instruções (CISC).
Um processador RISC segue a regra de que, internamente, deverá possuir
o menor número de micro instruções possível. Por exemplo, ao invés de conter
uma instrução para multiplicar (x), basta possuir a instrução de somar (+) e
deixar que o programador que queira multiplicar 5x2 realize a operação
2+2+2+2+2. Isso torna a vida do programador mais difícil, pois terá de
codificar instruções complexas para alcançar seu objetivo. O programa resul-
tante, porém, ao ser executado, será feito em alta velocidade pelo proces-
sador RISC.
Um processador CISC segue a regra de que, internamente, deverá possuir
vários conjuntos de instruções para realizar diversas operações. Isso significa
que ele possuirá tanto a operação de soma (+), quanto a de multiplicação (x).

120 1º PeRÍodo • análise e desenvolvimento de sistemas • unitins


aula 2 • comPutação básica

Isso facilita a vida do programador, que terá à sua disposição um leque de instru-
ções prontas de fábrica a fim de alcançar seus objetivos.
Não há como definir qual o melhor dos processadores. Alguns autores
defendem o RISC como sendo o mais performático e “puro” dos processadores;
outros defendem que a complexidade trazida pelo CISC facilita a vida dos desen-
volvedores. De fato os processadores RISC costumam ser mais rápidos que os
processadores CISC. Mais rápido nem sempre significa melhor. Os computadores
da Apple (power pc, I-mac) não são tão populares no Brasil, mas sim nos EUA.
São preferidos quando o assunto é, por exemplo, processamento de vídeo, som e
gráfico, realizado por empresas de jogos eletrônicos, maquetes virtuais, etc.
Mesmo assim, o processador Intel é o mais popular por seguir uma regra de
retro compatibilidade com programas construídos para outros processadores da
mesma marca, mesmo que ultrapassados. Isso significa que um programa feito
para um processador Intel 4x86 (antigo) terá grandes chances de ser executado
em um Pentium IV (novo). Ter a vantagem de retro compatibilidade coloca a
Intel em posição comercial privilegiada, uma vez que os programadores de
sistemas e aplicativos terão menos trabalho, codificarão uma só vez e verão o
seu programa funcionar em várias versões futuras da Intel.
Chegamos ao fim da segunda aula. Agora você está ciente de importantes
informações que nortearão de maneira significativa as decisões que tomará em
relação à programação e demais relacionamentos associados ao computador.
Repare, também, o quanto a primeira aula apresentou aspectos fundamen-
tais sobre a evolução dos componentes de nossos computadores, o que fez com
que você recebesse a informação desta aula de forma fundamentada. Leve, em
sua mente, os conceitos aqui expostos, pois irá usá-los como, no mínimo, “pano
de fundo” para o desenvolvimento de aplicações, preparação de conteúdos,
ministração de palestras e seminários e os estudos da maioria das disciplinas que
serão vistas neste curso e que sejam relacionadas ao computador moderno.

Nesta segunda aula, você aprendeu que o computador digital consiste


em um sistema interconectado de processadores, memórias e dispositivos de
entrada/saída.
A memória é um componente que tem com função o armazenamento tempo-
rário de dados, funcionando como um repositório para programas do usuário e
para o próprio processador.
O processador (UCP) é considerado como cérebro do computador, e que
ele é responsável por todos os cálculos e operações matemáticas solicitadas pelo
usuário e seus programas.

unitins • análise e desenvolvimento de sistemas • 1º PeRÍodo 121


aula 2 • comPutação básica

Os dispositivos de entrada e saída de dados do computador aos quais


chamamos de periféricos, que estão divididos em periféricos de entrada, saída
e entrada/saída.
Aprendeu, ainda, as diferenças entre as arquiteturas de processadores (RISC
e CISC) e o modo como um computador executa instruções.

1. Descreva as funções da ULA.

2. Qual a diferença entre os registradores da CPU e a memória principal


(RAM)?

3. Observe as seguintes afirmações.


I. A memória RAM é também chamada de volátil, pois necessita de energia
elétrica para manter os dados. Caso cesse o fornecimento de energia,
os dados serão perdidos.
II. As principais diferenças entre os processadores de arquitetura CISC e
RISC são em relação ao conjunto de instruções.
III. Os registradores internos da CPU armazenam tanto dados temporá-
rios para armazenamento quanto dados importantes para a execução
das instruções.
IV. Registradores internos são dispositivos de armazenamento mais rápidos
do que a memória RAM, que por sua vez é mais rápida do que os
discos rígidos.

Assinale a alternativa correta.


a) Apenas as afirmativas I e II são verdadeiras.
b) I, II, III e IV são verdadeiras.
c) Apenas as afirmativas III e IV são verdadeiras.
d) Apenas as afirmativas I e III são verdadeiras.

4. Os processadores Intel (CISC) ocupam uma fatia maior do mercado em


relação aos processadores Apple (RISC) pelo fato de que:
a) possuem um conjunto de instruções mais complexo;
b) tornam a vida dos programadores de aplicações comerciais mais fácil;
c) são mais rápidos;
d) permitem uma retro compatibilidade (capacidade de um programa
projetado para uma versão antiga ser executado em uma versão mais
nova de um processador).

122 1º PeRÍodo • análise e desenvolvimento de sistemas • unitins


aula 2 • comPutação básica

Na atividade um, os três componentes que formam o computador moderno


são CPU, memória principal e placa mãe. Se você acertou, parabéns! Você
atingiu nosso objetivo de conhecer os principais componentes formadores do
computador moderno.
Na atividade dois, a diferença principal entre os registradores da CPU e
memória RAM é a localização física. Os registradores ficam dentro da própria CPU,
enquanto a RAM fica externa à CPU, conectada ao processador via barramento
da placa mãe. O tamanho dos registradores são quantidades muito pequenas de
memória, se comparadas à RAM,e a velocidade de acesso dos registradores é
muito mais rápida que a da RAM. Se você acertou, parabéns! Você atingiu o obje-
tivo de conhecer os principais componentes formadores do computador moderno.
Na atividade três, a resposta correta é a alternativa (b). A afirmativa (I)
é verdadeira. A memória RAM é uma memória de acesso temporário. Ela é
também chamada de volátil, uma vez que, sem energia elétrica para manter os
dados, os dados se perdem. A afirmativa (II) é verdadeira, pois os processadores
CISC utilizam um conjunto complexo de instruções, enquanto os processadores
RISC utilizam um número reduzido. A afirmativa (III) também é verdadeira, pois
o processador teria de se esforçar muito mais para realizar operações sem os
registradores internos. Se assim fosse, teria de utilizar a memória principal, que
está mais longe, externa ao processador. E, por fim, a afirmativa (IV) também é
verdadeira. Os registradores internos são dispositivos de armazenamento mais
rápido do que a memória RAM, que por sua vez é mais rápida do que os discos
rígidos. Se você acertou, parabéns! Você atingiu o objetivo de compreender,
conceitualmente, o modo de execução de instruções de um computador.
Na atividade quatro, a resposta correta é a alternativa (d). Apesar de o CISC
ter um conjunto de instruções mais complexo e tornar a vida dos programadores
de aplicações comerciais mais fácil, tem um número bem maior de instruções.
Apesar de não serem necessariamente mais rápidos que o RISC, os processa-
dores Intel permitem uma retro compatibilidade (capacidade de um programa
projetado para uma versão antiga ser executado em uma versão mais nova de
um processador). Se você acertou, parabéns! Você atingiu o objetivo de compre-
ender, conceitualmente, o modo de execução de instruções de um computador.

CRUZ, Adriano J. O. O hardware. Disponível em: <http://equipe.nce.ufrj.br/


adriano/c/apostila/introd.htm>. Acesso em: 26 ago. 2008.
TANENBAUM, Andrew S. Organização estruturada de computadores. São
Paulo: Prentice Hall, 2007.

unitins • análise e desenvolvimento de sistemas • 1º PeRÍodo 123


aula 2 • comPutação básica

Agora que você já compreendeu detalhes importantes sobre a arquitetura de


computadores modernos (sua estrutura física) e conheceu detalhes de seus compo-
nentes internos, está pronto para se aprofundar na maneira como o computador
armazena suas informações. Também verá a importância da conversão inter-
sistemas numéricos, principalmente entre o sistema binário (usado pelo compu-
tador) e o sistema decimal (usado pelo homem).

Anotações

124 1º PeRÍodo • análise e desenvolvimento de sistemas • unitins


aula 3 • comPutação básica

Aula 3
Sistemas posicionais de numeração

Esperamos que, ao final desta aula, você seja capaz de:


• compreender os sistemas de representação numérica de base 2, 8,
10 e 16;
• compreender as conversões entre os sistemas de representação numé-
rica de base 2, 8, 10 e 16.

Para iniciar os estudos desta aula, é importante conhecer a história da


computação, estudada na primeira aula deste caderno, para que fique mais
clara a necessidade e a importância dos sistemas posicionais de numeração.
Também se faz necessário ter noções dos componentes básicos do computador,
conteúdo visto na aula dois, uma vez que são eles que fazem uso de uma das
representações que será estudada nesta aula: o sistema binário.

Desde os primórdios, quantificar coisas, objetos, rebanhos, entre outros,


emergiu como uma necessidade. Assim os números se tornaram presentes, desde
cedo, na civilização.
Entretanto a representação numérica da forma como a conhecemos hoje
não é uma invenção que apareceu de um dia para o outro e nem conseqüên-
cia de uma única mente inventiva. A utilização dos dedos da mão para repre-
sentar quantidade, ou seja, alguma grandeza numérica, talvez seja a primeira
forma que apareceu. Hoje em dia, parece natural essa forma de represen-
tação, afinal é comum vermos crianças indicarem suas idades com os dedos
da mão.
Vamos estudar mais profundamente esse assunto a partir de agora?

unitins • análise e desenvolvimento de sistemas • 1º PeRÍodo 125


aula 3 • comPutação básica

3.1 Lei de formação


Pedras, nós em cordas, marcas em um osso e símbolos unitários pintados nas
paredes de cavernas também foram outras formas de representação numérica.
Imagine os homens das cavernas representando o número quinze nas paredes desta
forma: | | | | | | | | | | | | | | |. É fácil perceber que é uma tarefa exaustiva.
Um pouco mais adiante na história, apareceram os números romanos (até
hoje utilizados para referenciar séculos) utilizado em todo o império romano.
Nessa forma de representação, ou nesse sistema numérico, letras são os símbolos
utilizados para representar quantidades. Nesse sentido, cada letra representa
uma quantidade pré-definida. Veja exemplos no quadro um.

Quadro 1 Exemplos de números representados no sistema numérico romano.


ROMANA REPRESENTAÇÃO
I Um
II Dois
III Três
IV Quatro
V Cinco
IX Nove
X Dez
C Cem
CXVI Cento e dezesseis
D Quinhentos
DCXX Seiscentos e vinte
M Mil
MMVIII Dois mil e oito

Apesar de o sistema romano ser amplamente utilizado pelo império, é um


sistema numérico que apresenta deficiências em operações aritméticas. Outras
formas de representações sugiram ao longo da civilização. Entre essas outras
formas, surgiram os algarismos arábicos, segundo Weber (2004), com os
seguintes símbolos (0, 1, 2, 3, 4, 5, 6, 7, 8, 9):
٠, ٩, ٨, ٧, ٦, ٥, ٤, ٣, ٢, ١
Note que nessa representação, ao contrário da romana, aparece o número
zero, uma invenção indo-arábica das mais importantes da humanidade. Nessa
forma de representação numérica, dez símbolos diferentes são utilizados para
se representar qualquer número natural. Esse sistema numérico é o mais ampla-
mente conhecido e utilizado atualmente. É conhecido como sistema decimal ou
sistema numérico posicional de base 10.
Além do sistema decimal, outros sistemas numéricos se destacam e são impor-
tantes para a computação: o binário (sistema numérico posicional de base 2), o

126 1º PeRÍodo • análise e desenvolvimento de sistemas • unitins


aula 3 • comPutação básica

octal (sistema numérico posicional de base 8) e o hexadecimal (sistema numérico


posicional de base 16).
Você já parou para pensar e tentar descobrir o porquê da popularização da
sistema de base 10 em relação aos dos demais tipos de base? A resposta é simples.
Lembra-se de que no início da aula foi exposto que os dedos talvez tenham sido a
primeira forma de representação numérica pelo ser humano e é uma representação
natural? Pois bem, a reposta está aí. O sistema decimal se destaca exatamente
porque o ser humano tem 10 dedos. Ao contrário do que muita gente pensa, de que
o sistema decimal é mais fácil de se trabalhar, os demais sistemas funcionam exata-
mente iguais aos de base 10. Podemos achar mais simples o decimal exatamente
por estarmos acostumados desde criança com essa forma de respresentação.
Como veremos a seguir, todas as representações posicionais são regidas
por uma única lei: lei de formação.
Vejamos como se compoe um número pela lei de formação:
Número = an.bn + an-1.bn-1 + an-2.bn-2 + ... + a0.b0
onde:
b = base do número (exemplo: base 2, 8, 10 e 16)
n = quantidade de algarismos - 1
an = algarismos de acordo com sua posição (daí o nome sistema posicional)

Exemplo

O número 1982 no sistema decimal é composto por 1 milhar, 9 centenas, 8 dezenas


e 2 unidades.
1000 + 900 + 80 + 2 = 1982
Esse número pode ser decomposto também da seguinte maneira:
1982 = 1000 + 900 + 80 + 2
= 1 x 1000 + 9x 100 + 8x 10 + 2x 1
= 1 x 103 + 9x 102 + 8x 101 + 2x 100
Note que a última linha é a representação do número 1982 no sistema
decimal pela lei de formação. Nesse sentido, a idéia é adotar pesos diferentes
para posições diferentes de algarismos (idéia de representação posicional).
Assim, quanto mais à esquerda, maior seu peso, sempre 10 (base) vezes maior.
A seguir, veremos detalhes dos sistemas binários, octal e hexadecimal.

3.2 Sistema binário (base 2)


Vimos que o sistema decimal (base 10) utiliza dez símbolos diferentes para
representar qualquer número natural. No sistema binário, como o próprio nome
diz, existem apenas dois símbolos para se representar: 0 (zero) e 1 (um).

unitins • análise e desenvolvimento de sistemas • 1º PeRÍodo 127


aula 3 • comPutação básica

Como já foi exposto anteriormente, o sistema binário obedece à lei de


formação. Vejamos como ele funciona.

Exemplos

O número 1001, no sistema binário, de acordo com a lei de formação, é composto


da seguinte forma:
1001= 1x23 + 0x22 + 0x21 + 1x20
O número 11011, no sistema binário, de acordo com a lei de formação, é
composto da seguinte forma:
11011 = 1x24 + 1x23 + 0x22 + 1x21 + 1x20

Idoeta e Capuano (1998, p. 2) expõem que, no sistema binário,


para representarmos a quantidade zero, utilizamos o algarismo
0, para representarmos a quantidade um, utilizamos o alga-
rismo 1. E para representarmos a quantidade dois, se nós não
possuímos o algarismo 2 nesse sistema? É simples. No sistema
decimal, nós não possuímos o algarismo dez e representamos
a quantidade de uma dezena utilizando o algarismo 1 seguido
do algarismo 0. Neste caso, o algarismo 1 significa que temos
um grupo de uma dezena e o algarismo 0 nenhuma unidade, o
que significa dez.

Essa mesma idéia está presente também no sistema binário, proveniente da


lei de formação. Para se representar o número dois, é utilizado o algarismo 1
seguido do algarismo 0. Assim o algarismo 1 representa dois elementos na base
2 (ao invés de 10 do sistema decimal) e 0 representa nenhuma unidade.
Ao contrário do decimal, em que cada posição de algarismo recebe um
nome (unidade, dezena, centena, milhar, etc.), no binário cada algarismo é
chamado de bit (binary digit – dígito binário, em português). As denominações
no sistema binário aparecem pela quantidade de bits. Veja o quadro dois que
apresenta como a quantidade de bits é representada.

Quadro 2 Nibble, byte, word.


BITS DENOMINAÇÃO
4 Nibble
8 Byte
16 Word

Gates (1995) apresenta uma forma diferente, no intuito de facilitar o enten-


dimento, sobre o sistema numérico binário. Imagine um quarto com uma única
lâmpada de 250 watts. Agora suponha que, ao invés de uma, o quarto tenha
oito lâmpadas de menor intensidade (de 1 a 128 watts), conforme apresentado
na figura 1.

128 1º PeRÍodo • análise e desenvolvimento de sistemas • unitins


aula 3 • comPutação básica

Figura 1 Lâmpadas de intensidade diferentes com seus interruptores.

Lâmpada Lâmpada Lâmpada Lâmpada Lâmpada Lâmpada Lâmpada Lâmpada


de 128 de 64 de 32 de 16 de 8 de 4 de 2 de 1
watts watts watts watts watts watts watts watts

interruptor interruptor interruptor interruptor interruptor interruptor interruptor interruptor


Fonte: Gates (1995).

No ambiente, há um interruptor para cada lâmpada e elas são arranjadas


em ordem crescente de potência da direita para a esquerda, ou seja, a de maior
potência está mais à esquerda e a de menor mais à direita (note que é a mesma
idéia dos pesos da lei de formação). Dessa forma, ao ligar e desligar os inter-
ruptores, é possível ajustar a iluminação do ambiente.
Se quiser somente 1 watt de luz, liga só o interruptor mais à direita. Se
quiser 191 watts, liga todos os interruptores, com exceção do da lâmpada
de 64 watts. Assim como se você quiser ajustar o nível de iluminação em
137 watts, ligam-se as lâmpadas de 128, 8 e 1 watts, como representado na
figura dois.

Figura 2 Interruptores ajustados para produzir 137 watts.

Lâmpada Lâmpada Lâmpada Lâmpada Lâmpada Lâmpada Lâmpada Lâmpada


de 128 de 64 de 32 de 16 de 8 de 4 de 2 de 1
watts watts watts watts watts watts watts watts

interruptor interruptor interruptor interruptor interruptor interruptor interruptor interruptor


Fonte: Gates (1995).

Gates (1995, p. 41) complementa que,


para encurtar ainda mais a notação, você pode registrar cada
“desligado” com 0 e cada “ligado”com 1. O que significa
que, em vez de escrever “ligado, desligado, desligado, desli-
gado, ligado, desligado, desligado, ligado”, vale dizer, ligue
a primeira, a quarta e a oitava das oito lâmpadas e deixe as
outras desligadas, você escreve a mesma informação como
1, 0, 0, 0, 1, 0, 0,1 ou 10001001, um número binário. No
caso, é 137.

unitins • análise e desenvolvimento de sistemas • 1º PeRÍodo 129


aula 3 • comPutação básica

A idéia de ligar e desligar interruptores é a que está por trás do sistema


binário, como vimos. A princípio pode até parecer complicado, mas, no sistema
decimal, essa mesma idéia é utilizada, regida pela lei de formação.

3.3 Sistema octal (base 8)


O sistema octal, intuitivamente, nos induz que existem oito símbolos dife-
rentes para se representar qualquer número natural, são eles: 0, 1, 2, 3, 4, 5, 6
e 7. O sistema octal também obedece à lei de formação. Vejamos um exemplo.

O número 735 no sistema octal, de acordo com a lei de formação, é composto


da seguinte forma:
735 = 7x82 + 3x81 + 5x80

3.4 Sistema hexadecimal (base 16)


O sistema hexadecimal possui 16 símbolos para representações. Como já
vimos, os algarismos arábicos são apenas dez e, sendo assim, faltam ainda seis
algarismos. Desse modo, o sistema hexadecimal fica constituído pelos seguintes
símbolos ordenados crescentemente:
0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F
Note que A=10, B=11, C=12, D=13, E=14 e F=15. Lourenço e outros (1996)
dizem que outros símbolos poderiam ser utilizados para representar as quanti-
dades maiores que nove. As letras foram escolhidas pela facilidade de manuseio.
A lei de formação também rege o sistema hexadecimal, uma vez que ele
também é um sistema de representação posicional. Analisemos um exemplo:

O número A29F no sistema hexadecimal, de acordo com a lei de formação, é


composto da seguinte forma:
A29F = Ax163 + 2x162 + 9x161 + Fx160
10x163 + 2x162 + 9x161 + 15x160

Existem vários padrões para se representar os números em diferentes bases,


vejamos a seguir sobre esses padrões de representação numérica.

3.5 Padrões de representação


De acordo com Lourenço e outros (1996), existem vários padrões para se
representar os números em diferentes bases. Os mais comuns são:
• utilizar uma letra após o número para indicar a base;
• colocar o número entre parênteses e a base como um índice do número.

130 1º PeRÍodo • análise e desenvolvimento de sistemas • unitins


aula 3 • comPutação básica

Exemplos

Sistema decimal: 1673D ou (1673)10


Sistema binário: 1001B ou (1001)2
Sistema octal: 753O ou (753)8
Sistema hexadecimal: F3AH ou (F3A)16

3.6 Tabela de conversão entre bases


Já vimos a idéia de alguns dos principais sistemas de representação posi-
cional de números: decimal, binário, octal e hexadecimal. Conhecer suas equi-
valências é de extrema importância para as conversões que serão estudadas
mais adiante. Observemos as equivalências apresentadas na tabela um.

Tabela 1 Tabela de equivalência entre as bases 2, 8, 10 e 16.


BASE 10 BASE 2 BASE 8 BASE 16
0 0 0 0
1 1 1 1
2 10 2 2
3 11 3 3
4 100 4 4
5 101 5 5
6 110 6 6
7 111 7 7
8 1000 10 8
9 1001 11 9
10 1010 12 A
11 1011 13 B
12 1100 14 C
13 1101 15 D
14 1110 16 E
15 1111 17 F

Como no sistema decimal, adicionando-se zeros à esquerda de um número


em qualquer outra base, seu valor não é alterado.

Exemplos

a) 43610 = 043610 = 0043610 = 00043610


b) 111012 = 0111012 = 00111012 = 000111012
c) 6178 = 06178 = 006178 = 0006178
d) F4316 = 0F4316 = 00F4316 = 000F4316

unitins • análise e desenvolvimento de sistemas • 1º PeRÍodo 131


aula 3 • comPutação básica

3.7 Conversões de qualquer base para a base 10


Para se converter um número de qualquer representação posicional para a
base 10, basta aplicar a lei de formação, substituindo b pela base do número a
ser converto e an por seus algarismos.

Exemplos

(11011)2:
b = 2 (base do número)
n = 5 – 1 = 4 (quantidade de algarismos – 1)
1x24 + 1x23 + 0x22 + 1x21 + 1x20
16 + 8 + 0 + 2 + 1 = (27)10

(3D9)16 :
b = 16 (base do número)
n = 3 – 1 = 2 (quantidade de algarismos – 1)
3x162 + Dx161 + 9x160
3x162 + 13x161 + 9x160
768 + 208 + 9 = (985)10

3.8 Conversão da base 10 para qualquer base


Acabamos de ver que, para se converter um número de qualquer base para
o sistema decimal, é utilizada a lei de formação, que são, basicamente, suces-
sivas multiplicações dos algarismos por seus pesos. Agora queremos o inverso,
do sistema decimal para as demais bases. Para isso, precisamos realizar a
operação matemática inversa que utilizamos anteriormente, ou seja, a divisão.
Lourenço e outros (1996, p.9) dizem que,
dado um número inteiro escrito na base 10, para se obter seu
equivalente em uma base b qualquer, divide-se o número por b
tantas vezes quantas necessárias para que o quociente da divisão
seja menor que b. O último quociente da divisão e os restos das
divisões sucessivas, tomados na ordem inversa, correspondem ao
número na base b. (grifo dos autores)

Exemplo

(125)10 : ( ? )2 15 ÷ 2 = 7 e resto = 1
125 ÷ 2 = 62 e resto = 1
7 ÷ 2 = 3 e resto = 1
62 ÷ 2 = 31 e resto = 0
3 ÷ 2 = 1 e resto = 1
31 ÷ 2 = 15 e resto = 1
1 < 2 (base desejada)

132 1º PeRÍodo • análise e desenvolvimento de sistemas • unitins


aula 3 • comPutação básica

Quando o quociente é menor que a base desejada, pára de se efetuar


as divisões. O resultado da conversão é o último quociente concatenado
com os restos das divisões do fim para o começo. Dessa forma, obtemos
(1111101)2.

O exemplo anterior pode ser visto na figura três.

Figura 3 Exemplo de múltiplas divisões na conversão do número (125)10


para a base 2.

125 2

1 6
62 22
2

0 3
31 12
2

1 1
15 52
2

1 7 2
sentido da leitura
1 3 2

1 1
(125)10 = (1111101)2

Fonte: Lourenço e outros (1996).

3.9 Conversão entre base 2 e 16


A conversão entre os sistemas binário e hexadecimal pode ser feita direta-
mente, sem a necessidade de operações aritméticas. Isso ocorre porque existe
uma estreita relação entre esses dois sistemas posicionais de representação.
Afinal, o número 16 (base do sistema hexadecimal) pode ser expresso como 24
(repare o dois do sistema binário na base). Ou seja, os números hexadecimais
podem ser vistos como uma representação compacta dos números binários. A
conversão da base 2 para a base 16 é realizada da seguinte forma:
• segmenta-se o número em parte de 4 (repare que quatro é a potência de
24) algarismos da direita para a esquerda;
• cada segmento é convertido diretamente para o seu equivalente em
hexadecimal (de acordo com a tabela um).

Exemplo

(1010011011)2
0010 1001 1011

2 9 B

unitins • análise e desenvolvimento de sistemas • 1º PeRÍodo 133


aula 3 • comPutação básica

A conversão da base 16 para a base 2 é realizada da seguinte forma:


cada algarismo hexadecimal é convertido diretamente para o seu equivalente
em binário com quatro bits (de acordo com a tabela um).

Exemplo

(54B)16
5 4 B

0101 0100 1011

3.10 Conversão entre as bases 2 e 8


A conversão entre as bases 2 e 8 também pode ocorrer diretamente, assim como
entre as bases 2 e 16. Isso se dá porque também há uma relação entre essas duas
bases, afinal 8 também pode ser reescrito como 23. A conversão é direta. Ao invés
de se formar grupos de quatro algarismos, formam-se grupos de três algarismos.

Exemplo

(1010011011)2
001 010 011 011

1 2 3 3

A conversão de um número octal em binário procede-se de modo idêntico ao


da conversão da base 16 para a base 2. Assim cada algarismo octal é convertido
diretamente para o seu equivalente em binário de três bits (de acordo com a tabela
um).

Exemplo

(543)8
5 4 3

101 100 011

3.11 Conversão entre as bases 8 e 16


Falta apenas vermos mais uma conversão entre as bases analisadas. Para
converter um número octal em hexadecimal, é preciso realizar um passo inter-
mediário por meio do sistema binário. É simples de enxergar isso, uma vez que

134 1º PeRÍodo • análise e desenvolvimento de sistemas • unitins


aula 3 • comPutação básica

não conseguimos reescrever o número 16 na base 8 elevado a alguma potência.


Contudo ambos podem ser reescritos respectivamente como 24 e 23, tendo ambos
como base 2, ou seja, podem ser reduzidos diretamente para o sistema binário.

Exemplo

(543)8
5 4 3

101 100 011


Encontrado o binário, realiza-se a conversão da base 2 para a base 16.
0001 0110 0011

1 6 3

Na conversão de hexadecimal para octal, também é necessário um passo


intermediário, que é o sistema binário. Assim se converte o número da base 16
para a base 2 e, em seguida, este para a base 8.

Exemplo

(1F4B)16
1 F 4 B

0001 1111 0100 1011

Encontrado o binário, se realiza a conversão da base 2 para a base 8.


001 111 101 001 011

1 7 5 1 3

3.12 Conversão de números fracionários


Os números fracionários também podem ser representados nas bases 2, 8
e 16. Afinal, esses números podem ser representados pela base 10. Para isso,
basta ampliar a aplicação da lei de formação:
Número = anbn + an–1bn–1 + an–2bn–2 + ... + a0b0 + a–1b–1 + a–2b–2 + ... + a–mb–m

Parte inteira Parte fracionária

unitins • análise e desenvolvimento de sistemas • 1º PeRÍodo 135


aula 3 • comPutação básica

onde:
b = base do número (exemplo: base 2, 8, 10 e 16)
n = quantidade de algarismos da parte inteira –1
an = algarismos de acordo com sua posição
m = quantidade de algarismos da parte fracionária
Vejamos alguns exemplos de conversão de números fracionários de outras
bases para a base 10.

Exemplos

a) Base 2 para base 10


1101,0112 = 1 x 23 + 1 x 22 + 0 x 21 + 1 x 20 + 0 x 2-1 + 1 x 2-2 + 1 x 2-3
= 8 + 4 + 0 + 1 + (0/2) + (1/4) + (1/8) = 13,37510

b) Base 8 para base 10


51,348 = 5 x 81 + 1 x 80 + 3 x 8-1 + 4 x 8-2
= 40 + 1 + (3/8) + (4/64) = 41,437510

c) Base 16 para base 10


1F,5C016 = 1 x 161 + 15 x 160 + 5 x 16-1 + 12 x 16-2 + 0 x 16-3
= 16 + 15 + (5/16) + (12/256) + (0/4096) = 31,35937510

A conversão da base 10 para as bases 2, 8 e 16 é um pouco diferente da


parte fracionária. A parte inteira é convertida separadamente pelas divisões
sucessivas. Para a parte fracionária, utiliza-se o processo das multiplicações
sucessivas pela base desejada.

Exemplos

a) Base 10 para a base 2


7,2512 = parte inteira: 1112

parte fracionária:

0,25 0,50 0,0 FINAL


x2 x2
0,50 1,00

0 1
7,42710 = 111,012

136 1º PeRÍodo • análise e desenvolvimento de sistemas • unitins


aula 3 • comPutação básica

b) Base 10 para a base 2 (dízima periódica)


6,410 = parte inteira: 1102
parte fracionária:
0,4 x 2 = 0,8 0
0,8 x 2 = 1,6 1
Repetição 0,6 x 2 = 1,2 1
0,2 x 2 = 0,4 0
0,4 x 2 = 0,8 1
6,410 = 110,01100110011001100110...2
c) Base 10 para a base 8
26,210 = parte inteira: 328
parte fracionária: 146314361...8 (dízima periódica)
0,2 x 8 = 1,6 1
0, 6 x 8 = 4,8 4
0,8 x 8 = 6,4 6
0,4 x 8 = 3,2 3
0,2 x 8 = 1,6 1
d) Base 10 para a base 16
69,124610 = parte inteira: 4516
parte fracionária: 1FE516... (não periódica)

Estamos chegando ao fim desta aula. Nela expusemos que existem vários
sistemas de numeração. Entre esses sistemas de numeração, os de representação
posicional (atribuição de pesos para cada posição de algarismo) se destacam
pela facilidade de realização de operações aritméticas, que serão estudadas na
próxima aula.

Nesta aula, vimos que o ser humano desde sempre teve a necessidade de
quantificar coisas, para isso foram criados os sistemas numéricos. Com as repre-
sentações numéricas, torna-se possível realizar tarefas antes complexas de forma
trivial. Entre as várias formas de representações, destacam-se a decimal (com
dez símbolos de representações), a binária (com dois símbolos) – amplamente
utilizada nos computadores, a octal (com oito símbolos) e a hexadecimal (com
dezesseis símbolos). Explicamos como se realizam conversões entre essas quatro
formas de representação, que obedecem a uma única lei: a lei de formação.
Basicamente, a lei de formação atribui pesos para as posições de cada algarismo

unitins • análise e desenvolvimento de sistemas • 1º PeRÍodo 137


aula 3 • comPutação básica

de um número (idéia de sistema posicional). Por fim, apresentamos como repre-


sentar números fracionários nas bases 2, 8 e 16.

1. Realize a conversão dos números a seguir de acordo com as bases indicadas.


a) (F46A)16 = ( ? )10 e) (765)8 = ( ? )10
b) (295)10 = ( ? )2 f) (1024)10 = ( ? )16
c) (1001101)2 = ( ? )16 g) (101,001)2 = ( ? )10
d) (1A42)16 = ( ? )8 h) (B1,5)16 = ( ? )10

2. Leia as afirmativas a seguir sobre conversão de bases e, depois, assinale a


alternativa correta.
I. Os números (765)10, (765)8 e (765)16 são iguais.
II. O número (11001110)2 é maior que (D1)16.
III. Os números (11101010)2 e (504C)16 são números pares.

Assinale a alternativa correta.


a) Somente a I é verdadeira.
b) Somente a II é falsa.
c) Somente a III é verdadeira.
d) Todas as alternativas são verdadeiras.

3. Observe as seguintes afirmações.


I. Números romanos podem ser decompostos de acordo com a mesma lei de
formação usada para formar números no sistema posicional de base 10.
II. As sentenças 175D e (175)10 indicam o mesmo valor.
III. O número 16 em base decimal representa 10000, 20 e 10 nas bases
binária, octal e hexadecimal.
IV. A conversão de valores fracionários de qualquer base para base decimal
pode ser feita utilizando-se a lei de formação.

Assinale a alternativa correta.


a) Somente as afirmações I e II são verdadeiras.
b) Somente as afirmações III e IV são falsas.
c) Somente as afirmações I, II e III são verdadeiras.
d) Somente as afirmações II, III e IV são verdadeiras.

138 1º PeRÍodo • análise e desenvolvimento de sistemas • unitins


aula 3 • comPutação básica

4. O número 1001001, representado em base binária, quando convertido


para as bases hexadecimal, octal e decimal (nessa ordem), resultará em:
a) 49, 73, 111; c) 49, 111, 73;
b) 48, 53, 114; d) 114, 53, 48;

Na atividade um, basta utilizar as conversões vistas durante esta aula.


Assim as respostas corretas são (F46A)16 = (62570)10; (295)10 = (100100111)2;
(1001101)2 = (4D)16; (1A42)16 = (15102)8; (765)8 = (501)10; (1024)10 = (400)16;
(101,001)2 = (5,125)10; (B1,5)16 = (177,3125)10.
Na atividade dois, a resposta correta é a letra (c). O item (I) é falso porque
(765)10 = (1375) 8 = (2FD)16. Já no item (II), o número (11001110)2 = 206 é
menor que (D1)16 = (209)10, por isso é falsa. O item (III) é o único verdadeiro,
pois (11101010)2 = (234)10 e (504C)16 = (20556)10. É necessário acrescentar
que todo número binário terminado em 0 é par, assim como todo número octal
terminado em 0, 2, 4 e 6, decimal terminado em 0, 2, 4, 6 e 8, e hexadecimal
terminado em 0, 2, 4, 6, 8, A, C, E são pares. Os demais são ímpares.
Na atividade três, a resposta correta é a letra (d). A afirmativa (I) está incorreta,
pois o sistema de representação numérica romano é diferente do sistema posicional
de numeração decimal. O sistema posicional de numeração decimal utiliza números
(arábico) em vez de letras (romano) para representar qualquer número. Além disso,
o sistema romano apresenta deficiências em operações aritméticas, base funda-
mental da lei de formação. A afirmativa (II) está correta, pois as sentenças 175D e
(175)10 representam apenas diferentes formas de notação de sistemas posicionais de
numeração. A afirmativa (III) também é verdadeira conforme resolução a seguir:
DEC -> BIN
DEC 16 8 4 2 1
BIN 1 0 0 0 0 => 10000
DEC -> OCT (usando método das divisões sucessivas)
16 8
–16 2 = 20
0
A afirmativa (IV) também é verdadeira, como podemos ver na resolução a
seguir:
a) Base 2 para base 10
1101,0112 = 1 x 23 + 1 x 22 + 0 x 21 + 1 x 20 + 0 x 2-1 + 1 x 2-2 + 1 x 2-3
= 8 + 4 + 0 + 1 + (0/2) + (1/4) + (1/8) = 13,37510

unitins • análise e desenvolvimento de sistemas • 1º PeRÍodo 139


aula 3 • comPutação básica

b) Base 8 para base 10


51,348 = 5 x 81 + 1 x 80 + 3 x 8-1 + 4 x 8-2
= 40 + 1 + (3/8) + (4/64) = 41,437510
c) Base 16 para base 10
1F,5C016 = 1 x 161 + 15 x 160 + 5 x 16-1 + 12 x 16-2 + 0 x 16-3
= 1 + 15 + (5/16) + (12/256) + (0/4096) = 16,35937510
Na atividade quatro, a resposta correta é a alternativa (c), conforme resolu-
ções a seguir:
BIN: 0100 1001

HEX: 4 9

BIN: 001 001 001

OCT: 1 1 1
BIN: 1 0 0 1 0 0 1
DEC: 64 32 16 8 4 2 1 = 73
(Devemos somar os valores decimais somente onde o valor em binário é
equivalente a 1).
Se você conseguiu resolver essas atividades, significa que compreendeu os
sistemas de representação numérica de base 2, 8, 10 e 16 e suas conversões,
que são os objetivos desta aula.

GATES, Bill. A estrada do futuro. São Paulo: Companhia das Letras, 1995.
IDOETA, Ivan V.; CAPUANO, Francisco G. Elementos de eletrônica digital.
28. ed. São Paulo: Érica, 1998.
LOURENÇO, Antonio C. et al. Circuitos digitais. São Paulo: Érica, 1996.
WEBER, Raul F. Fundamentos de arquitetura de computadores. 3. ed. Porto
Alegre: Sagra Luzzatto, 2004.

Agora que você aprendeu sobre as formas de representação numérica, estu-


daremos as operações aritméticas (adição, subtração, multiplicação e divisão)
no sistema binário de numeração. Esse estudo será feito por meio de operações
matemáticas, as mesmas que os computadores utilizam para realizar os seus
mais diversos cálculos. Até lá!

140 1º PeRÍodo • análise e desenvolvimento de sistemas • unitins


aula 4 • comPutação básica

Aula 4
Operações aritméticas no sistema
binário de numeração

Esperamos que, ao final desta aula, você seja capaz de:


• realizar as operações aritméticas no sistema binário de numeração utili-
zando números inteiros;
• realizar as operações aritméticas no sistema binário de numeração utili-
zando números de ponto flutuante.

Para iniciarmos os estudos sobre operações aritméticas no sistema binário


de numeração, é de suma importância o conhecimento dos sistemas posicionais
de numeração, vistos na aula três. O sistema binário é um dos sistemas posicio-
nais de numeração, por isso a necessidade de estar familiarizado com esse tipo
de sistema numérico.

O sistema binário é um sistema de numeração posicional, em que todos os


números são representados pelo conjunto de caracteres formados apenas por
dois símbolos: 0 (zero) e 1 (um).
Os computadores digitais trabalham internamente com esse tipo de sistema,
que pode representar qualquer tipo de número armazenado na memória. Esses
números podem representar inteiros, ponto flutuante, negativos ou positivos.
A manipulação desses números, por meio de aritmética simples e por meio
de aritmética de ponto-flutuante, é realizada utilizando algoritmos diversos, os
quais serão apresentados durante esta aula.

4.1 Aritmética em sistemas binários


Os números podem ser representados utilizando qualquer base, seja ela
binária, octal, decimal, hexadecimal ou outra qualquer. Para a computação,

unitins • análise e desenvolvimento de sistemas • 1º PeRÍodo 141


aula 4 • comPutação básica

o sistema binário é o mais adequado devido à facilidade de implemen-


tação via hardware dos símbolos que representam esse sistema por meio de
circuitos lógicos.
No sistema binário, as operações aritméticas podem ser estendidas direta-
mente do mecanismo de cálculo utilizado no sistema decimal, que é mais comum
para os seres humanos.

4.2 Notação de números binários positivos e negativos


Sabendo que números representados em computadores têm um limite de bits
a ser utilizado e que apenas 0s e 1s podem ser usados para representar qualquer
informação, foi desenvolvido o padrão de representação sinal de magnitude.
Nesse padrão, um número de 4 bits, por exemplo, é dividido em duas partes:
os três bits menos significativos (mais à direita) representam o valor do número repre-
sentado, e o bit mais significativo, chamado de bit de sinal, representa o sinal desse
número. Se o bit de sinal for 0, o número representado é positivo, se o bit de sinal
for 1, o número representado é negativo, conforme apresentado na figura um.

Figura 1 Correspondência entre números binários e decimais representados


em sinal de magnitude.

Na figura um, podem-se observar os valores representados em binário e os


correspondentes em base decimal. Seguindo esse padrão, basta inverter o bit
mais significativo para encontrar o seu simétrico. Por exemplo:
• 0001 = 1, inverte-se o bit mais significativo e tem-se 1001 = –1;
• 0101 = 5, inverte-se o bit mais significativo e tem-se 1101 = –5.
Uma vantagem desse padrão é a facilidade de entendimento e de encontrar
o correspondente negativo de um determinado número, além de prover um inter-

142 1º PeRÍodo • análise e desenvolvimento de sistemas • unitins


aula 4 • comPutação básica

valo de representação simétrico. Ou seja, cada valor positivo tem exatamente


um correspondente negativo, alterando-se apenas o bit de sinal. Em contrapar-
tida, esse padrão apresenta dois zeros (+0 e -0), o que é uma inconsistência, já
que o número zero não tem sinal.
Vejamos a seguir como resolver esse problema.

4.2.1 Complemento de 1
Outra maneira de representar números binários é o complemento de 1. Para
encontrar o valor simétrico de um número binário na notação complemento de
1, basta inverter todos os bits que o compõem, ou seja, onde for 0 substitui por
1, e onde for 1 substitui por 0. Por exemplo:
• 0001 = 1, invertem-se todos os bits e tem-se 1110 = –1;
• 0101 = 5, invertem-se todos os bits e tem-se 1010 = –5.
Essa notação também descreve um intervalo de representação simétrico. Ela
tem a mesma desvantagem de apresentar dois valores diferentes para o zero. A
figura dois, a seguir, apresenta os valores em complemento de 1 e o seu corres-
pondente em decimal.

Figura 2 Correspondência entre números binários e decimais representados


em complemento de 1.

4.2.2 Complemento de 2
Com a finalidade de encontrar um intervalo de representação que tenha
apenas um valor para zero, foi desenvolvida a notação complemento de 2.
Para se chegar à representação em complemento de 2, faz-se o complemento
de 1 (ou seja, invertem-se todos os bits do número) e soma-se um ao resultado.
Por exemplo:

unitins • análise e desenvolvimento de sistemas • 1º PeRÍodo 143


aula 4 • comPutação básica

• 0001 = 1, invertem-se todos os bits e tem-se o complemento de 1 =


1110, soma-se 1 ao resultado e obtém-se 1111 = –1;
• 0101 = 5, invertem-se todos os bits e tem-se o complemento de 1 =
1010, soma-se 1 ao resultado e obtém-se 1011 = –5.
Apesar da vantagem de ter apenas um valor para representar o zero, essa
notação não descreve um intervalo de representação simétrico, conforme apre-
sentado na figura três.

Figura 3 correspondência entre números binários e decimais representados


em complemento de 2.

Observe que o menor número representado é –8 e o maior número repre-


sentado é 7. Essa é a notação utilizada na programação para o tipo inteiro de
dados numéricos.

4.3 Adição em sistemas binários


Na adição, os números são somados um a um da direita para esquerda
com os carries (vai 1) sendo passados para o próximo bit à esquerda. A tabela
básica para soma de binários está ilustrada na tabela um.

Tabela 1 Tabela básica da operação binária de adição.


PRIMEIRO OPERANDO SEGUNDO OPERANDO RESULTADO DA ADIÇÃO
0 0 0
0 1 1
1 0 1
1 1 0, e vai 1

144 1º PeRÍodo • análise e desenvolvimento de sistemas • unitins


aula 4 • comPutação básica

Se um carry ocorre no bit mais significativo, é gerada uma nova posição à


esquerda do último bit, semelhante à aritmética decimal. A figura quatro ilustra
uma simples adição, e a figura cinco, uma adição em que ocorre carry no bit
mais significativo.

Figura 4 Operação de adição com carries ocorrendo antes do bit mais


significativo.
(vai um) 1 1
6= 0 1 1 0
+7= 0 1 1 1
13 = 1 1 0 1

Figura 5 Operação de adição com carry ocorrendo no bit mais significativo.


(vai um) 1 1 1
10 = 0 1 0 1 0
+7= 0 0 1 1 1
17 = 1 0 0 0 1

No caso de a operação de adição gerar um carry no bit mais significativo,


acontece o que chamamos de overflow.

Saiba mais

Na operação de adição com números com notação em complemento de 2,


somam-se os dois números e descarta-se o carry. Vejamos o exemplo demons-
trado na figura seis.

Figura 6 Soma de números binários em complemento de 2 (*carry


descartado).
(vai um) 1 1 1 1 1 1
15 = 0 0 0 0 1 1 1 1
–6 = 1 1 1 1 1 0 1 0
9= 1* 0 0 0 0 1 0 0 1

4.4 Subtração em sistemas binários


A subtração utiliza também os mesmos princípios da operação realizada em
sistemas decimais. Na tabela dois, expomos a tabela básica de subtração em
números binários.

unitins • análise e desenvolvimento de sistemas • 1º PeRÍodo 145


aula 4 • comPutação básica

Tabela 2 Tabela básica da operação binária de subtração.

PRIMEIRO SEGUNDO
RESULTADO DA SUBTRAÇÃO
OPERANDO OPERANDO
0 0 0
0 1 1, vai 1 para ser subtraído no dígito seguinte
1 0 1
1 1 0

Para exemplificar melhor, mostraremos um exemplo descrito na figura sete.

Figura 7 Operação de subtração entre dois números.

* * *
14 = 1 1 1 0
–7 = 0 1 1 1
7= 0 1 1 1

Quando temos 0 menos 1, precisamos pedir emprestado do elemento vizinho.


Esse empréstimo vem valendo 2 (dois), pelo fato de ser um número binário (10).
Então, no caso da coluna 0 – 1 = 1, a operação realizada na verdade foi 2 – 1
= 1. Esse processo se repete e o elemento que cedeu o empréstimo que antes
tinha o valor 1 passa a valer 0. Os asteriscos marcam os elementos que empres-
taram para seus vizinhos. Quando acontecer de o número que emprestará não
poder emprestar para ninguém, o pedido passa para o próximo elemento, e esse
zero recebe o valor de 1.
A maneira mais eficiente de se implementar a subtração é utilizando a
notação binária com complemento de dois. Assim, ao invés de implementarmos
a subtração, fazemos o complemento de dois no minuendo e somamos os dois
valores. Um exemplo dessa característica da subtração de números binários é a
mostrada na figura oito.

Figura 8 Subtração utilizando notação de complemento de dois.

7 = 00111
2 = 00010
7 – 2 => 00111 – 00010 => 00111 + (11101 + 00001) => 00111 + 11110 => 100101

4.5 Multiplicação em sistemas binários


A multiplicação é realizada por meio dos mesmos métodos do sistema
decimal, a única diferença é no momento de somar os termos resultantes da
operação, o qual obedece às regras da adição de números binários.

146 1º PeRÍodo • análise e desenvolvimento de sistemas • unitins


aula 4 • comPutação básica

Na figura nove, é mostrado um exemplo de como se comporta a multipli-


cação de dois números.

Figura 9 Exemplo de multiplicação com binários.

1 0 1 1 Multiplicando
X 1 0 1 0 Multiplicador
0 0 0 0
+ 1 0 1 1
+ 0 0 0 0
+ 1 0 1 1
1 1 0 1 1 1 0

A tabela básica para multiplicação de números binários é mostrada na


tabela três.

Tabela 3 Tabela básica da operação binária de multiplicação.


PRIMEIRO SEGUNDO RESULTADO DA
OPERANDO OPERANDO MULTIPLICAÇÃO
0 0 0
0 1 0
1 0 0
1 1 1

Uma observação importante a respeito da multiplicação de números biná-


rios é que os números de bits do produto final são maiores do que os números
de bits do multiplicando ou do multiplicador, como fica evidente na figura nove.
Além disso, a multiplicação também precisa tratar a ocorrência do overflow.

Castro (2005), levando em consideração os dígitos binários 0 e 1, diz que


temos apenas duas possibilidades de escolha, a cada passo da multiplicação.
São elas:
• coloque uma cópia do multiplicando no lugar apropriado, se o dígito do
multiplicador for igual a 1; ou
• coloque 0 no lugar apropriado, se o dígito do multiplicador for igual a 0.

Considerando isso, Castro (2005) diz que é necessário desenvolver um algo-


ritmo em hardware que seja eficiente para realizar a multiplicação.

Um método elegante de multiplicar números com sinal recebeu o nome de


Algoritmo de Booth. O Algoritmo de Booth funciona com base em que a partir
do momento que você pode adicionar ou subtrair números binários, você pode
chegar a um produto qualquer.

unitins • análise e desenvolvimento de sistemas • 1º PeRÍodo 147


aula 4 • comPutação básica

O algoritmo utiliza a notação em complemento de 2, que foi inventado, em


1951, por Andrew D. Booth, enquanto fazia cristalografia no Colégio Birkbeck,
em Bloomsbury, Londres.

4.6 Divisão em sistemas binários


A divisão em sistemas binários é feita utilizando-se das mesmas técnicas dos
outros sistemas, bastando, para isso, obedecer a algumas regras na hora da
subtração.
Na divisão do número 6 pelo número 2, temos a operação conforme apre-
sentada na figura dez, na qual o quociente é 3.

Figura 10 Exemplo de divisão com binários.


1 1 0 1 0
– 1 0 1 1
0 1 0
– 1 0
0 0

4.7 Aritmética de ponto flutuante


A notação de ponto flutuante é utilizada para representar números fracioná-
rios de qualquer sinal. Outra vantagem da representação em ponto flutuante é
que o intervalo de representação é bem maior.
Números fracionários podem ser decompostos em duas partes: a parte
inteira e a parte fracionária. O elemento que define a separação entre as partes
é a vírgula. Na notação em ponto flutuante, um número é dividido em três partes:
a mantissa, o expoente e a base. A mantissa expressa o valor do número, a base
indica em qual sistema de numeração ele é representado (binário, decimal, etc.)
e o expoente define a posição da vírgula. Por exemplo: 1255,5D = 12555 =
mantissa; 10 = base; -1 = expoente. Note que o expoente -1 determina que a
vírgula seja levada uma casa para a esquerda.
Em geral, números de ponto flutuante são representados em linguagens de
programação como números de 32 bits organizados da seguinte maneira: 1 bit
para o sinal, 8 bits para o expoente e 23 bits para a mantissa.
A seguir, você pode verificar a representação dos números de ponto flutu-
ante, conforme a figura 11.

Figura 11 Representação em ponto flutuante.


SINAL EXPOENTE MANTISSA
0 00000000 00000000000000000000000

148 1º PeRÍodo • análise e desenvolvimento de sistemas • unitins


aula 4 • comPutação básica

Números de ponto flutuante normalmente são difíceis de serem representados


computacionalmente, pois podem ser muito extensos ou podem ser infinitos.
As operações aritméticas utilizando números de ponto flutuante são muito
onerosos e, por isso, foi necessário implementá-los em hardware para que
pudessem ter um desempenho aceitável.
Mano (1998) descreve os algoritmos que podem ser utilizados nas opera-
ções aritméticas de ponto flutuante, pois como muitos computadores não possuem
a aritmética de ponto flutuante implementada em hardware, é preciso tratá-la via
software. Os algoritmos são apresentados nos próximos tópicos.

4.7.1 Soma e subtração


Para se realizar uma soma ou subtração, primeiramente verifica-se se uma
das mantissas a serem calculadas é zero. Em caso afirmativo:
• se for uma soma e uma das parcelas for zero, o resultado será igual a
outra parcela;
• se for uma subtração e o subtraendo for zero, o resultado será igual
ao minuendo;
• se for uma subtração e o minuendo for zero, o resultado será igual ao
subtraendo, com o sinal invertido.
Se não houver zeros:
• reduza ao mesmo expoente (o maior);
• some / subtraia as mantissas;
• normalize o resultado.

4.7.2 Multiplicação
Para se realizar uma multiplicação, primeiramente verifica-se se uma das
mantissas a operar é zero; caso afirmativo, o resultado é zero;
Se não houver zeros:
• some os expoentes;
• multiplique as mantissas;
• normalize o resultado.

4.7.3 Divisão
Para se realizar uma divisão, primeiramente verifique se uma das mantissas
a operar é zero; caso afirmativo:
• se o divisor for zero, é impossível e dispara uma exceção de divisão
por zero;
• se o dividendo for zero, o resultado será igual a zero;

unitins • análise e desenvolvimento de sistemas • 1º PeRÍodo 149


aula 4 • comPutação básica

Se não houver zeros:


• subtraia os expoentes;
• divida as mantissas;
• normalize o resultado.
Para se padronizar a implementação de aritmética de ponto flutuante em
CPUs, foi criado em 1985 o padrão IEEE 754, o qual está implementado atual-
mente na grande maioria das CPUs. O padrão IEEE 754 dita algumas caracte-
rísticas, citadas em Viana (2005), que são:
• a base de representação é a binária;
• as operações devem ser executadas em precisão estendida com uso de
dígitos de guarda e expoente deslocado;
• o uso do expoente deslocado, também chamado característica, tem por
objetivo eliminar o sinal do expoente.
Nas operações aritméticas em ponto flutuante, após cada operação é reali-
zado o arredondamento, por isso as operações de adição, subtração, multipli-
cação e divisão não são associativas nem distributivas.
Além dos erros que podem ser ocasionados por arredondamento, alguns
efeitos afetam a qualidade dos cálculos, como cancelamento, propagação de
erros, instabilidade numérica e mau condicionamento. Esses quatro tipos de
erros são apresentados a seguir:
• o cancelamento ocorre na subtração de dois números quase iguais, pois
o expoente permanece o mesmo e os dígitos iniciais são todos zeros,
perdendo-se dígitos significativos do resultado;
• a propagação de erros ocorre quando uma ou mais somas parciais têm
o expoente maior do que a soma final;
• a instabilidade numérica ocorre se um resultado intermediário é contami-
nado por um erro de arredondamento. Esse erro pode influenciar todos
os resultados subseqüentes que dependem desse valor, propagando,
assim, os erros de arredondamento;
• problemas cujos resultados dependem continuamente dos dados de
entrada são ditos bem postos, em oposição aos problemas mal postos,
mal condicionados ou críticos.
Chegamos ao final de nossa aula, esperamos que você tenha apreciado
aprender um pouco mais sobre as operações aritméticas no sistema de nume-
ração binária, pois esse conteúdo é de fundamental importância durante toda a
sua jornada dentro da área de tecnologia da informação.

150 1º PeRÍodo • análise e desenvolvimento de sistemas • unitins


aula 4 • comPutação básica

Nesta aula, vimos que as operações aritméticas de números binários obedecem


sempre aos mesmos princípios das operações em outras bases. Pudemos conhecer
também alguns algoritmos que possibilitam que as operações fiquem mais velozes
quando implementadas em hardware. Também vimos que a aritmética de ponto
flutuante, apesar de ser um pouco complexa, nos ajuda a entender melhor as difi-
culdades de desenvolvimento de circuitos que suportam aritmética de ponto flutu-
ante. As operações aritméticas de números binários são de extrema importância
para os computadores digitais atuais, pois, somente com uma aritmética simples
e eficiente, podemos chegar a unidades lógicas e aritméticas aceitáveis.

1. O resultado da adição entre os números binários 01110011 + 01110101


tem como resultado:
a) 11101000 c) 11100100
b) 10111000 d) 10111011

2. O resultado da subtração entre os números binários 11010001 – 00101111


tem como resultado:
a) 11101011 c) 11000110
b) 10110111 d) 10100010

3. O resultado da multiplicação entre os números binários 11011010 * 11010


tem como resultado:
a) 1100101010110 c) 1101010111011
b) 1011000100100 d) 1000011011100

4. A respeito da aritmética de sistemas binários, assinale a alternativa incorreta.


a) A multiplicação 111 x 10 tem resultado 1110.
b) A divisão de 100001 por 11 tem resultado 1011.
c) A adição 101010 + 101 tem resultado 1010110.
d) Em uma subtração, para se fazer 0 – 1 é necessário pedir emprestado
para o vizinho.

Na atividade um, a resposta correta é a alternativa (a), conforme resolução


a seguir:

unitins • análise e desenvolvimento de sistemas • 1º PeRÍodo 151


aula 4 • comPutação básica

0 1 1 1 0 0 1 1
(vai um) 1 1 1 1 1 1
0 1 1 1 0 0 1 1
+ 0 1 1 1 0 1 0 1
1 1 1 0 1 0 0 0

Na atividade dois, a resposta correta é a alternativa (d), conforme resolução


a seguir:
(empresta) * * * * *
1 1 0 1 0 0 0 1
– 0 0 1 0 1 1 1 1
1 0 1 0 0 0 1 0

Na atividade três, a resposta correta é a alternativa (b), conforme resolução


a seguir:
1 1 0 1 1 0 1 0
x 1 1 0 1 0
0 0 0 0 0 0 0 0
+ 1 1 0 1 1 0 1 0
+ 0 0 0 0 0 0 0 0
1 1 0 1 1 0 1 0
+ 1 1 0 1 1 0 1 0
1 0 1 1 0 0 0 1 0 0 1 0 0

Na atividade quatro, a resposta é a alternativa (c). Na alternativa (a), assim


como em base decimal, ao multiplicar qualquer número por 10 – que em base
binária representa o valor 2 –, basta acrescentar um 0 ao final do número para
obter o resultado. Na alternativa (b), para se tirar prova, podemos utilizar a
técnica de converter os valores para base decimal e verificar o resultado:
1000001B = 33D; 11B = 3D;
33 dividido por 3 = 11, sendo que 11D = 1011B.
Na alternativa (c), com base nas regras da adição em números binários,
segue a resolução da operação:
+101010
000101
101111

Na alternativa (d), como qualquer operação de subtração em qualquer


sistema de numeração, quando o minuendo é menor do que o subtraendo,
devemos pedir emprestado para a dezena imediatamente posterior, ou seja, ao

152 1º PeRÍodo • análise e desenvolvimento de sistemas • unitins


aula 4 • comPutação básica

elemento que está à esquerda do número. Essa prática é comumente chamada


de pedir emprestado.

CASTRO, F. C. C. Eletrônica digital. PUC-RS, Faculdade de Engenharia Elétrica,


Departamento de Engenharia Elétrica, 2002. Disponível em: <http://www.
ee.pucrs.br/~decastro/pdf/ED_C5.pdf>. Acesso em: 4 set. 2008.
CASTRO, M. C. S. Organização de computadores I. Universidade do Estado
do Rio de Janeiro, Departamento de Informática e Ciência da Computação,
2005. Disponível em: <http://www.ime.uerj.br/~leandro/oci/Apostila_OCI.
pdf>. Acesso em: 4 set. 2008.
MANO, R. Representação de dados. Disponível em: <http://wwwusers.rdc.
puc-rio.br/rmano/rd6aritr.html>. Acesso em: 20 dez. 2007.
VIANA, G. V. R. Padrão IEEE 754 para aritmética binária de ponto flutuante.
Universidade Estadual do Ceará, Departamento de Estatística e Computação,
2005. Disponível em: <http://www.lia.ufc.br/~valdisio/download/ieee.pdf>.
Acesso em: 4 set. 2008.

Agora que você aprendeu sobre as operações aritméticas com o sistema


de numeração binária, que é a base de cálculo utilizada por todos os computa-
dores, vamos estudar as classificações e tipos de software de computador. Você
será capaz de entender que eles podem servir para diferentes finalidades. Até
a próxima aula!

Anotações

unitins • análise e desenvolvimento de sistemas • 1º PeRÍodo 153


aula 4 • comPutação básica

154 1º PeRÍodo • análise e desenvolvimento de sistemas • unitins


aula 5 • comPutação básica

Aula 5
Classificação de software

Esperamos que, ao final desta aula, você seja capaz de:


• compreender as características quanto à classificação dos softwares
livres e proprietários;
• expor os princípios para que o software seja considerado livre e as dife-
rença entre as versões shareware e trial de softwares proprietários.

As aulas anteriores poderão dar algum embasamento teórico que facilite a


interpretação dos conceitos e das características que serão considerados nesta
aula e que são de extrema importância para o mercado de trabalho.

A criação de software, ou como conhecido popularmente “programa para


computador”, tem como finalidade a criação de produtos de software por meio
da utilização de ferramentas de desenvolvimento. A criação de software consiste
em uma área muito importante da ciência da computação (MOLINARI, 2007).
Esse tema apresenta diversas vertentes e discussões que devem ser consi-
deradas quanto à distribuição e à comercialização de um produto de software.
Entre tais vertentes, temos a criação de software proprietário ou livre, que consiste
no ponto central de muitas discussões. Assim, nesta aula, serão apresentados os
principais conceitos e características que o auxiliarão a compreender tais classi-
ficações de software. Bons estudos!

5.1 Software livre


Desde os primórdios da história da computação, quando do início da criação
de software para os computadores gigantescos, para não se dizer “jurássicos”,
um tema é bastante discutido nas rodas de desenvolvedores, a classificação

unitins • análise e desenvolvimento de sistemas • 1º PeRÍodo 155


aula 5 • comPutação básica

do software. Isso se deve a aspectos existentes no processo de criação de um


software, que envolve tanto direitos autorais quanto intelectuais que devem ser
respeitados. Nos últimos anos, a vertente de software livre tem ganhado conside-
rável força devido ao fato da crescente visão de que, segundo a Free Software
Foundation (FSF, [s.d., s.p.]), “Software Livre é uma questão de liberdade, não de
preço. Para entender o conceito, você deve pensar em liberdade de expressão,
não em cerveja grátis”.
Isso define com clareza a intenção por trás de um software livre, em que a
caracterização como livre ou não, não consiste necessariamente em sua gratui-
dade. Mas você deve estar se perguntando: “mas não é gratuito? Onde está
a liberdade nisso então?” Fique calmo, iremos trabalhar com mais detalhes as
subdivisões dessa interessante classificação de software.
Toda essa controvérsia se deve ao fato de existir muita confusão quanto à
utilização do termo livre, uma vez que vem do inglês free, que pode ser traduzido
tanto como gratuito ou mesmo livre. O ponto central do software livre se baseia
na idéia de se dar liberdade para que usuários executem, copiem, distribuam,
estudem, aperfeiçoem e modifiquem um software, levando em consideração suas
características, expectativas e necessidades. Tudo isso contribui para uma visão
construtivista e evolucionária em que diversas pessoas podem trabalhar para
torná-lo melhor (OSI, [s.d.]).
Agora você deve estar se questionando: “mas como trabalhar para torná-lo
melhor se foi outra pessoa que o criou? O que posso fazer?” Aí entra uma carac-
terística importantíssima de um software livre, que consiste na disponibilização
de seu código fonte para que outras pessoas possam utilizar, alterar ou mesmo
re-distribuir o software com suas alterações. Isso contribui sensivelmente para
que diversas pessoas tenham acesso à informação, difundindo conhecimento e
incentivando a pesquisa científica (FSF, [s.d.]).
A (FSF, [s.d.]) menciona que, para que um software seja considerado livre,
ele deve necessariamente ter os quatro princípios da liberdade. São eles:
• liberdade n. 0: o usuário deve ter a liberdade de executar o programa,
para qualquer propósito;
• liberdade n. 1: o usuário deve ter a liberdade de estudar e adaptar o
programa às suas necessidades. O acesso ao código-fonte é um pré-
requisito para essa liberdade;
• liberdade n. 2: o usuário deve ter a liberdade de redistribuir cópias de
modo que possa ajudar ao próximo;
• liberdade n. 3: o usuário deve ter a liberdade de aperfeiçoar o
programa e disponibilizar seus aperfeiçoamentos, de modo a benefi-
ciar toda a comunidade. O acesso ao código-fonte é um pré-requisito
para essa liberdade.

156 1º PeRÍodo • análise e desenvolvimento de sistemas • unitins


aula 5 • comPutação básica

Saiba mais

Como você viu, o acesso ao código fonte é um dos pilares para a caracteri-
zação de um software livre. Isso não significa que não seja comercial, muito pelo
contrário. A idéia de se ganhar dinheiro com software livre não está na venda de
produtos fechados, mas sim na venda de serviços de qualidade que estão, a todo
o momento, expostos, sendo colocados à prova e ao julgamento da comunidade
(MOLINARI, 2007).
Um software, quando se diz livre, geralmente está regido pela GPL (General
Public License), que consiste na designação da licença para software livre criada
por Richard Stallman no final da década de 1980, regido pela Free Software
Foundation. É utilizado por grandes projetos, como o do sistema operacional
Linux (FSF, [s.d.]). Assim essa vertente da classificação de software pode ser divida
em duas subdivisões, que são: Open Source e Livre Comercial, tratados a seguir.

5.1.1 Open Souce


Esse tipo de software segue todos os preceitos citados até aqui nesta aula.
Nele o código fonte é distribuído e é permitido que seja modificado e redistri-
buído, levando em consideração os princípios de liberdade do software original.
Isso auxilia na prevenção de sua utilização sem fins comerciais, estando sujeito
aos termos da licença GPL. Alguns exemplos de softwares open source são o
kernel do sistema operacional Linux e o projeto Web Apache TomCat, que podem
ser alterados e redistribuídos (FSF, [s.d.]).

5.1.2 Livre comercial


Como já mencionado nesta aula, o software livre não exclui a possibili-
dade de sua utilização comercial, distribuição mediante o pagamento. Porém
o comércio é comprometido, uma vez que está sob as regras impostas pela
GPL para a qual, apesar do software ser comercializado, pode ser livremente
distribuído sem ônus algum (FSF, [s.d.]). Em sua maioria, esse tipo de software
trabalha com a idéia de agregação de valores que o torna diferenciado da
versão open source, como o empacotamento e a venda com outros softwares
integrados, ou como a venda de hadware, que se comporta melhor devido à sua
compatibilidade com o software. Diversos exemplos podem ser citados, como as
distribuições Linux RedHat e Mandrake. Nesse tipo de software, ainda é preser-
vada a característica de código fonte aberto.

unitins • análise e desenvolvimento de sistemas • 1º PeRÍodo 157


aula 5 • comPutação básica

Podem ser encontrados diversos softwares gratuitos, porém sem a disponibi-


lização do código fonte. Software gratuito não é software livre. A caracterização
de software livre compreende aspectos de liberdade, alteração e redistribuição.
A não disponibilidade faz com que indiretamente o usuário fique preso, de
alguma maneira, à empresa desenvolvedora do software. Vejamos quais são as
versões de softwares gratuitos.
• Versões freeware: podem ser utilizados sem limite de tempo, copiados e
distribuídos livremente. Exemplo: Java Sun, Microsoft, Internet Explorer.
• Versões adware: são gratuitos, porém utilizam publicidade, no caso
banners ou links de patrocinadores, que custeiam o desenvolvimento e
manutenção em troca de marketing. Podem ser copiados e distribuídos
livremente. Assim como o freeware, não é disponibilizado o código
fonte. Exemplo: Adobe Acrobat.

Lembre: nem sempre um software gratuito é livre, e nem todo software livre deixa comple-
tamente de ser comercial.

Conforme apresentado até o momento, fica claro que existem diversas


possibilidades quanto à exploração das características do software livre. Há a
corrente que prega a utilização softwares proprietários, nos quais são conside-
rados direitos autorais e ideológicos envolvendo custo.

5.2 Software proprietário


Ok, pessoal! Depois de conhecida toda a ideologia existente por trás dos
softwares livres, chegou a vez de discuti-lo como um bem material que envolve
custos e até mesmo segredos de mercado. Opiniões quanto ao software livre
como uma grande utopia, ou como uma idéia muito à frente de seu tempo
podem ser encontradas facilmente na internet e no mercado.
O que é pregado em defesa do software proprietário é mais bem anali-
sado quando utilizada uma analogia. Por exemplo: um grande chefe de
cozinha, por cozinhar muito bem, tem todo o direito de abrir um restau-
rante e vender suas deliciosas iguarias. Ninguém pode obrigá-lo a ensinar
ou mesmo a distribuir suas receitas gratuitamente para que os outros as
utilizem. Alguns chefes fazem questão de compartilhar seus conhecimentos,
já outros não, ficando a critério do cliente o pagamento ou não pela degus-
tação da iguaria.
Assim, voltando ao software, o que é fornecido tem um preço que é definido
de acordo com a utilidade que o software tem para uma determinada pessoa
que pague o valor sugerido, mesmo que outros discordem completamente desse
ponto de vista (MOLINARI, 2007).

158 1º PeRÍodo • análise e desenvolvimento de sistemas • unitins


aula 5 • comPutação básica

Um software comercial ou proprietário é distribuído sem a disponibilização


de seu código fonte, é normalmente comercializado sob os termos de licença de
uso e não de propriedade. O que acontece nesse caso é que, ao adquirir um
software, uma pessoa está se comprometendo somente a utilizá-lo, sem direito
algum sob aspectos de comercialização ou mesmo de sua redistribuição, sob
penas e multas severas. Exemplos desse tipo de software é o sistema operacional
Microsoft Windows e o assistente gráfico Corel Draw.

Saiba mais

Uma grande quantidade de softwares proprietários disponibiliza versões


gratuitas para testes, que podem ser classificadas como:
• shareware: software que, após certo tempo de utilização ou mesmo
número de utilizações, indisponibiliza suas funcionalidades. É neces-
sário o registro, no caso o pagamento de uma taxa ao proprietário do
software, ou sua exclusão do computador. Muitas empresas proprietá-
rias que desenvolvem software optam pela agregação de serviços aos
usuários registrados, a fim de fidelizar o cliente;
• demo: serve como um demonstrativo para análise da viabilidade da
aquisição do produto. É muito comum a utilização dessa modalidade de
distribuição em jogos, que disponibiliza fases, possibilita a construção
de opinião (se vale ou não a pena adquirir o produto). É uma versão
que não expira e nem pode ser registrada, sendo necessária a substi-
tuição de todo o software, caso opte por adquiri-lo;
• trial: é semelhante à distribuição demo, porém se aplica geralmente a
softwares funcionais, como editores de texto e planilhas eletrônicas. É limi-
tado de maneira a não permitir, por exemplo, a edição de trabalhos ou
mesmo não possibilitando que sejam realizadas a persistência deles na
máquina, ou seja, salvar os documentos. Geralmente são liberados todos
os recursos do software, limitando somente alguns pontos chaves. Pode
ser utilizado todo o potencial da ferramenta para aprendizado por tempo
indeterminado, porém sempre se lembrando das limitações já citadas.

Pensando sobre o assunto

unitins • análise e desenvolvimento de sistemas • 1º PeRÍodo 159


aula 5 • comPutação básica

Finalizando esta aula, é interessante considerarmos que as divisões de softwares


apresentadas não são as únicas disponíveis, mas as principais e mais utilizadas para
a classificação de software. Essas classificações refletem a idéia e a vontade de como
os programas de computadores devem ser utilizados, segundo a visão do desen-
volvedor e proprietário dos direitos autorais. Existem ainda diversos métodos que
podem ser utilizados na classificação de software, como, por exemplo, a permissão
de utilização de software gratuitamente, em que é possível que haja um processo de
reciprocidade por meio de uma doação voluntária por parte dos usuários.
Outro exemplo de classificação das distribuições de software consiste na
iniciativa da Microsoft em lançar seus produtos sob licença Shared Source, isso
devido a apelos, principalmente da comunidade européia, quanto à disponi-
bilização do código fonte. Sob esse tipo de licença, a Microsoft permite que
parceiros, empresas e governo tenham acesso ao código fonte de seus produtos,
minimizando incidentes que, segundo muitos, caracterizam um monopólio do
mercado de software, porém sem que seja permitida a alteração e redistribuição
dos produtos da empresa (OSI, [s.d.]).
Isso provoca discussões que mostram como é difícil definir qual a melhor
forma de distribuição de software. As classificações apresentadas, nesta aula,
apontam para diversos pontos que devem ser considerados e que influen-
ciam diretamente na contextualização e, por conseqüência, classificação dos
softwares, como valores culturais e contribuições sociais. São vertentes comple-
tamente diferentes que apresentam prós e contras, mas que, com certeza, contri-
buem para um melhor modelo de produção de conhecimento e disseminação da
informação, cada uma à sua maneira.

Nesta aula, apresentamos as características e os conceitos relacionados à


classificação de software. Ele pode ser dividido em duas vertentes: livre (liber-
dade para que os usuários executem, copiem, distribuam, estudem, aperfeiçoem
e modifiquem um software) e proprietário (distribuído sem a disponibilização do
seu código fonte). Além disso, conhecemos nomenclaturas comuns à classificação
dos softwares proprietários gratuitos, como: freeware, adware, shareware, demo
e trial. Cada uma dessas distribuições caracteriza o software quanto às suas
limitações e ao tempo de utilização. Finalizando, forem apresentadas algumas
classificações menos conhecidas, como a Shared Source.

1. Diversos aspectos e características podem ser utilizados para que um


software seja considerado livre. Porém, com certeza, os quatro princípios de
liberdade exigidos pela GPL (General Public Lincense) são os mais conceitu-
ados. Quais são eles e em que consistem?

160 1º PeRÍodo • análise e desenvolvimento de sistemas • unitins


aula 5 • comPutação básica

2. Os softwares proprietários podem ser distribuídos como versões de teste.


Dessa forma, qual a diferença entre as versões shareware e trial?

3. A respeito de software livre, podemos dizer que:


a) todos os softwares livres são gratuitos;
b) o software livre somente é fornecido em conjunto com o código fonte
quando for pago;
c) software livre sempre é desenvolvido por uma comunidade independente
de programadores;
d) segundo a FSF, software livre deve apresentar quatro liberdades para
ser considerado realmente livre.

4. A respeito de software proprietário, assinale a alternativa incorreta.


a) Todos os softwares proprietários são pagos.
b) Um software comercial ou proprietário é distribuído sem a disponibili-
zação de seu código fonte.
c) Normalmente é comercializado sob os termos de licença de uso e não
de propriedade.
d) Shareware é um tipo de software proprietário que, após certo tempo
de utilização, ou mesmo número de utilizações, indisponibiliza suas
funcionalidades.

Na atividade um, você expôs os quatro princípios da liberdade consistem


em aspectos que interferem diretamente na classificação de um software livre.
O primeiro princípio consiste na liberdade que os usuários devem ter para a
execução do software para qualquer que seja o seu propósito. O segundo prin-
cípio consiste na liberdade que o usuário deve tem para estudar, analisar e adaptar
o programa às necessidades. Para tanto, é necessário que o código fonte esteja
disponível ao usuário. O terceiro princípio consiste na liberdade que o usuário
deve ter para a distribuição de cópias alteradas ou não por ele. Finalizando os
princípios, o usuário deve ter a liberdade de aperfeiçoar o software e, além disso,
disponibilizá-lo de modo a proporcionar o bem de outros.
Na atividade dois, você percebeu que a diferença existente entre as distribui-
ções de teste proprietárias shareware e trial consiste no fato de que a primeira
limita a utilização de recursos por meio do tempo ou mesmo quantidade de
vezes que o software é utilizado; já o segundo tipo, o trial, limita a utilização do
software por meio da indisponibilização e limitação dos recursos do programa,
por exemplo, a funcionalidade para salvar documentos.

unitins • análise e desenvolvimento de sistemas • 1º PeRÍodo 161


aula 5 • comPutação básica

Na atividade três, a resposta correta é a alternativa (d), pois quatro liberdades


são necessárias para que um software seja considerado livre. A alternativa (a) é
incorreta, visto que o retorno financeiro dos produtores de software livre pode ser
obtido por meio da cobrança pela propriedade intelectual, pelos serviços de manu-
tenção, consultoria, entre outros. Logo nem todos os softwares livres são gratuitos.
A afirmativa da (b) é incorreta, uma vez que, de acordo com a liberdade n. 1, um
dos requisitos para que o software seja considerado livre é a disponibilização do
código-fonte, seja o software pago ou não. A afirmativa da (c) também é incorreta,
pois, como sendo uma das bases da filosofia do software livre, com a disponibili-
zação do código-fonte, toda comunidade pode contribuir para o aprimoramento
de um software livre. Porém esse não é um requisito, ou seja, um software livre pode
ser desenvolvido por uma única pessoa, ou ainda por uma empresa específica.
Na atividade quatro, a resposta correta é a alternativa (a), pois nem todos os
softwares proprietários são pagos, como exemplo temos os softwares freewares.
As alternativas (b), (c) e (d) estão corretas.
Se você respondeu corretamente às questões, parabéns! Você atingiu os
objetivos propostos para esta aula: compreender as características quanto à
classificação dos softwares livres e proprietários e expor os princípios para que
o software seja considerado livre e as diferença entre as versões shareware e
trial de softwares proprietários.

FSF, Free Software Foundation. Free Software. Disponível em: <http://www.gnu.


org>. Acesso em: 20 dez. 2007.
MOLINARI, Leonardo. Gerência de configuração: técnicas e práticas no desen-
volvimento do software. Florianópolis: Visual Books, 2007.
OSI, Open Source Iniciative. Open Source. Disponível em: <http://www.open-
source.org>. Acesso em: 20 dez. 2007.

Veremos os conceitos relacionados a noções básicas de redes de computa-


dores e de banco de dados. São temas que serão recorrentes no curso e em sua
vida profissional. São temas importantes e instigantes. Fique atento!

Anotações

162 1º PeRÍodo • análise e desenvolvimento de sistemas • unitins


aula 6 • comPutação básica

Aula 6
Noções básicas de redes de
computadores e banco de dados

Esperamos que, ao final desta aula, você seja capaz de:


• compreender quais são os tipos de redes existentes e como elas são
interligadas entre si;
• entender o funcionamento de um banco de dados e como ele é útil para
manipular informações.

Para o aprendizado desta aula, é necessário que você tenha força de vontade
para conhecer novas tecnologias. Por isso procure saber mais sobre o que será
falado aqui em sites relacionados com estas duas áreas: redes de computadores
e bancos de dados.

A interligação de computadores ou rede de computadores se faz neces-


sário pelo fato de haver grande facilidade em trocar informações sem a neces-
sidade de mídias, como disquete, CD ou DVD, como também compartilhar
informações e aplicativos. Os bancos de dados têm como finalidade gerar
uma determinada informação por meio de um agrupamento logicamente
coerente de dados.

As redes de computadores e os bancos de dados, temas desta aula, permitem


que organizações com centenas de escritórios dispersos por uma extensa
área geográfica possam, com um simples apertar de um botão, examinar o
status atual de suas filiais. À medida que cresce nossa capacidade de colher,
processar e distribuir informações torna-se ainda maior a demanda por formas
de processamento de informações ainda mais sofisticadas (TANENBAUM,
2004). Vamos à aula.

unitins • análise e desenvolvimento de sistemas • 1º PeRÍodo 163


aula 6 • comPutação básica

6.1 Tipos de redes de computadores


De acordo com a distância em que os computadores se encontram, podemos
classificá-los em alguns tipos, conhecidos como:
• redes locais (LAN – Local Área Network): são interligações entre compu-
tadores em uma área geralmente menor que 10 km, de alta velocidade
e de baixas taxas de erro;
• redes metropolitanas (MAN – Metropolitan Área Network): são interli-
gações entre computadores em uma área geralmente maior que 10 km,
podendo alcançar até 100 km;
• redes geograficamente distribuídas (WAN – Wide Área Network): são
interligações entre computadores em uma área geralmente maior que
100 km, em que o alcance pode se tornar até intercontinental.
Mais recentemente, surgiu um novo tipo de classificação chamado de Rede
de Área Pessoal ou PAN (Personal Area Network), que consiste na interligação
de dispositivos, como fone de ouvido, ou até mesmo celulares e computadores
em que há um compartilhamento de dados por meio de redes bluetooth.

6.2 Topologias de redes de computadores


Os computadores podem ser interligados de várias formas entre si.
Dependendo de como essa interligação for feita, podemos classificá-las em:
a) barramento: é um tipo de ligação multiponto em que há apenas uma
única via de conexão e o acesso é compartilhado entre todos os compu-
tadores nela conectados. Por não haver um tipo de hierarquia no envio
de dados, nesse tipo de topologia de rede, podem ocorrer colisões de
dados, ou seja, mistura de dados no transcorrer da transmissão. Observe
esse tipo de topologia na figura um.

Figura 1 Topologia de rede em barramento.

b) anel: é um tipo de ligação fechada em que os computadores são inter-


ligados em seqüência na forma de um anel. As informações trocadas
entre os computadores são preferencialmente unidirecionais, mas podem
ser em qualquer direção. Um grande problema desse tipo de topologia
de rede é que, se um falhar, toda comunicação pode ser comprometida.
Observe a topologia de rede em anel na figura dois.

164 1º PeRÍodo • análise e desenvolvimento de sistemas • unitins


aula 6 • comPutação básica

Figura 2 Topologia de rede em anel.

c) estrela: é um tipo de ligação ponto-a-ponto em que há um gerenciador


central em que toda a comunicação é passada obrigatoriamente, com
isso será garantido que a informação enviada seja entregue correta-
mente ao seu destino. Esse tipo de topologia de rede é o mais usado na
atualidade. Observe na figura três.

Figura 3 Topologia de rede em estrela.

Saiba mais

Podemos observar que o meio de transmissão entre cada uma dessas interli-
gações de computadores é diferenciado, como veremos na seção a seguir.

6.3 Meios de transmissão de redes de computadores


Os computadores, as impressoras, entre outros tipos de hardware, comuni-
cam-se entre si por meio de um sistema físico de comunicação pelo qual os dados
são transmitidos. Esse sistema pode ser classificado em três tipos, que são:

unitins • análise e desenvolvimento de sistemas • 1º PeRÍodo 165


aula 6 • comPutação básica

a) cabo coaxial: é um cabo de cobre revestido de uma malha ou trança


metálica isolante que conduz sinais elétricos;
b) cabo de pares trançado: são cabos entrelaçados em forma de espiral
com a finalidade de isolar interferências de campos eletromagnéticos
quando há uma transmissão de dados na condução de sinais elétricos.
O máximo de comprimento de um cabo de pares trançado é de 100 m;
c) cabo de fibra óptica: são cabos que transmitem dados por meio de
feixes de luz e que podem chegar a grandes distâncias. Seu revesti-
mento é feito de uma mistura de vidro, plástico e outros componentes.

Saiba mais

Para que haja uma comunicação de dados entre computadores, impressoras,


scanners, etc., há necessidade de alguns tipos de dispositivos para interligá-los.
Na seção a seguir, veremos alguns desses tipos.

6.4 Dispositivos de transmissão de dados


Os dispositivos de redes a seguir são classificados em dois tipos: ativos e
passivos. Os ativos são equipamentos de rede que têm regras pré-definidas,
podendo escolher o melhor caminho de transmissão; já os passivos são equipa-
mentos de rede que não têm regras pré-definidas, atuam somente como um elo
entre outros dispositivos. Esses dispositivos são:
a) pontes (Bridges): têm como objetivo expandir ou segmentar uma rede
de computadores que usam o mesmo protocolo. Oferecem suporte a
diversos tipos de protocolos de rede;
b) roteadores (Routers): têm como objetivo interligar redes de computadores
fisicamente distintas, determinando por qual caminho a informação deve
seguir para chegar ao seu destinatário;
c) repetidores (Repeaters): têm como objetivo regenerar o sinal atenuado
pela distância, ou seja, aumenta a potência do sinal para que consiga
atingir grandes distâncias;
d) concentrador (Hub): tem como finalidade interligar vários computadores
entre si. Por não comportar grandes volumes de dados, é recomendado
para redes pequenas. Isso ocorre pelo fato de receber um sinal de um
computador e o enviá-lo a todos os outros computadores da rede;

166 1º PeRÍodo • análise e desenvolvimento de sistemas • unitins


aula 6 • comPutação básica

e) comutador (Switch): é semelhante ao Hub, com a diferença de que é


otimizado, ou seja, o sinal recebido por ele é enviado para o compu-
tador específico sem que os outros recebam essa informação.

Saiba mais

Após falarmos sobre comunicação de dados, veremos a seguir como são


classificados os bancos de dados, seus usuários e como os dados podem ser
gerenciados por um aplicativo.

6.5 Tipos de banco de dados


Os bancos de dados podem ser classificados em quatro tipos distintos. Dois
estão praticamente em desuso; e outros dois, ainda em uso. São atualmente usados
por grandes SGBD (Sistemas Gerenciadores de Banco de Dados), como MySQL,
PostgreSQL, entre outros. Esses bancos de dados são classificados como:
a) hierárquico: é organizado como árvores e consiste em uma coleção de
registros conectados entre si por ligações. Cada raiz é um pseudonó em
que cada nó é um registro;
b) rede: é semelhante ao modelo hierárquico, com o diferencial de que
cada registro filho pode ser ligado em mais de um registro pai;
c) relacional: os dados são armazenados em tabelas e apresentados por meio
de relações. É baseado na teoria dos conjuntos e na lógica de predicados;
d) orientado ao objeto: os dados são armazenados na forma de objetos que
obedecem a propriedades que são integradas a uma estrutura de dados.
Para a manipulação de um banco de dados, existem alguns tipos de usuá-
rios, cada um com a sua função e com um envolvimento diferente dentro desse
contexto. A seguir, veremos como são classificados esses usuários.

6.6 Usuários de banco de dados


Para distinguir a função em que cada usuário exerce em um banco de dados,
podemos classificá-los, segundo o site Wikipedia, como:

unitins • análise e desenvolvimento de sistemas • 1º PeRÍodo 167


aula 6 • comPutação básica

a) administrador de banco de dados (DBA): tem a função de supervisionar e


gerenciar os recursos fornecidos que são utilizados pelo banco de dados,
além de permitir ou não, por parte dos usuários, o acesso aos dados;
b) analistas de banco de dados: são os projetistas, identificam a estrutura
apropriada para o armazenamento dos dados. Têm uma proximidade
maior com os usuários finais para poder moldar o banco de dados, de
acordo com o que necessitam;
c) usuários finais: são as pessoas que utilizam o banco de dados apenas
para consultar, modificar e gerar algum tipo de relatório.
A seguir, veremos como é composto um SGBD (Sistema de Gerenciamento
de Banco de Dados) e suas principais funções.

6.7 Sistema de gerenciamento de banco de dados (SGBD)


É uma coleção de programas que facilita a manipulação de uma base de
dados. As principais funções de um SGBD são:
a) controle de redundância: não permite que a mesma informação seja
gravada em locais diferentes, o que ocasiona um problema na atuali-
zação dos dados;
b) compartilhamento de dados: utiliza-se de um ambiente multiusuário em
que os dados são compartilhados em acessos simultâneos;
c) controle de acesso: cada usuário tem um tipo de permissão para acesso ao
banco de dados. Somente o que for permitido pelo DBA será acessado;
d) controle de transações: toda transação deve ser realizada sem falhas ou
interrupções, como, por exemplo, a atualização de uma conta bancária;
e) múltiplas interfaces: há possibilidade de se programar, realizar consultas
e interagir por meio de menus em linguagem natural;
f) relacionamento entre dados: os dados são variados e estão inter-relacionados
de várias maneiras, representando um complexo relacionamento entre si;
g) backup: recupera falhas e possibilita a cópia da base para não haver a
perda de dados.
Pode-se observar que um SGDB tem várias funcionalidades para que a infor-
mação, que é o principal objeto de armazenamento, possa estar segura e com
um conjunto de acessórios para seu uso.

Saiba mais

168 1º PeRÍodo • análise e desenvolvimento de sistemas • unitins


aula 6 • comPutação básica

Na próxima seção, veremos como é feita a manipulação e definição dos


dados por meio de comandos que utilizamos para ajudar na construção de uma
tabela de geração de informação.

6.8 Structured query language (SQL)


Desenvolvida pela IBM em meados dos anos 1960, tem como objetivo ser
uma interface entre o usuário e o SGBD para manipular e definir os dados. O
SQL é composto de comandos de:
• manipulação chamado de DDL (Data Definition Language), como o
CREATE, DROP;
• definição de dados chamado de DML (Data Manipulation Language),
como o INSERT, UPDATE, DELETE e SELECT;
• controle de dados, chamado de DCL (Data Control Language), como o
GRANT e o REVOKE. Seu objetivo é ajudar os usuários na construção
de tabelas e geração de informação coerente.
Por meio do SQL, podemos realizar tarefas de cancelamento ou atualização
dos dados por meio de dois comandos chamados ROLLBACK e COMMIT. A
cada dado gravado, é realizado um COMMIT, efetivando sua gravação. Caso
haja uma falha no momento da gravação dos dados, o banco de dados retorna
ao passo anterior por meio do ROLLBACK.
A seguir, são apresentadas algumas das características da linguagem SQL:
• manipulação de várias tabelas;
• união de uma instrução SQL dentro de outra instrução SQL;
• simples, sem a necessidade de especificar o método de acesso aos dados;
• vários usuários podem utilizar um banco de dados, como: administrador
do banco de dados, especialista de banco de dados, programadores e
usuário fi nal;
• utilização de uma interface para o uso interativo com o banco de dados.
Finalizando esta aula, podemos verificar que as redes de computadores e os
bancos de dados estão em todos os segmentos de empresas e em pleno uso, já que,
por exemplo, a interligação das informações de uma matriz com suas filiais são de
suma importância para o bom rendimento dos produtos produzidos por ela.

Nesta aula, você aprendeu que rede de computadores é um conjunto de


dispositivos interligados entre si, distribuídos geograficamente, visando ao
compartilhamento de recursos e informações.

unitins • análise e desenvolvimento de sistemas • 1º PeRÍodo 169


aula 6 • comPutação básica

Também aprendeu que as redes são classificadas de acordo com a distância


em que os computadores se encontram e que podemos classificá-las em alguns
tipos, conhecidos como redes locais (LAN – Local Área Network), redes metro-
politanas (MAN – Metropolitan Área Network) e redes geograficamente distribu-
ídas (WAN – Wide Área Network).
Ainda sobre redes de computadores, você pôde observar que os computa-
dores podem ser interligados de várias formas entre si. Dependendo de como
essa interligação foi feita, podemos classificá-las em barramento, anel e estrela.
Pôde observar que o meio de transmissão entre cada uma dessas interligações
de computadores é diferenciado e se comunicam por meio de um sistema físico
de comunicação, pelo qual os dados são transmitidos. Esse sistema pode utilizar
cabo coaxial, cabo de pares trançado e cabo de fibra óptica.
Você também aprendeu que os bancos de dados podem ser classificados em
quatro tipos distintos: hierárquico, rede, relacional e orientado ao objeto.
Para a manipulação de um banco de dados, viu que existem alguns tipos de
usuários, cada um com a sua função e com um envolvimento diferente que são
os administradores de banco de dados (DBA), os analistas de banco de dados
e os usuários finais.
Aprendeu que um SGBD (Sistema de Gerenciamento de Banco de Dados) é
uma coleção de programas que facilita a manipulação de uma base de dados.
As principais funções de um SGBD são o controle de redundância, o comparti-
lhamento de dados, o controle de acesso, o controle de transações, as múltiplas
interfaces, o relacionamento entre dados e o backup.
Você aprendeu que SQL tem como objetivo ser uma interface entre o usuário
e o SGBD para manipular e definir os dados. O SQL é composto de comandos:
de manipulação, chamado de DDL (Data Definition Language), como o CREATE,
DROP; de definição de dados, chamado de DML (Data Manipulation Language),
como o INSERT, UPDATE, DELETE e SELECT; e de controle de dados, chamado
de DCL (Data Control Language), como o GRANT e o REVOKE.

1. Em que consiste uma rede de computadores?

2. Qual a finalidade de um SGBD (Sistema de Gerenciamento de Banco de


Dados)?

3. A respeito de redes de comunicação, observe as seguintes afirmações.


I. A rede de telefonia fixa pode ser considerada uma rede de comunicação.
II. Uma impressora pode fazer parte de uma rede de comunicação que
contenha também computadores.

170 1º PeRÍodo • análise e desenvolvimento de sistemas • unitins


aula 6 • comPutação básica

III. O compartilhamento de recursos, como leitores de CD, somente é


possível em redes que usam cabos.
IV. Para ser considerada uma rede de comunicação, uma rede deve conter
pelo menos dois computadores e um dispositivo de outro tipo.

Assinale a alternativa correta.


a) Apenas as afirmativas I e II estão corretas.
b) Apenas as afirmativas II e IV estão corretas.
c) Apenas as afirmativas I e III estão corretas.
d) Apenas as afirmativas III e IV estão corretas.

4. Sobre bancos de dados, analise as seguintes afirmações.


I. Bancos de dados somente são úteis para aplicações comerciais.
II. Um SGBD é um sistema que faz a interface entre os aplicativos e os
bancos de dados.
III. A linguagem SQL pode ser usada somente para fazer consultas em
bancos de dados relacionais.
IV. A implementação da segurança, controle de acesso, entre outras ações, pode
ser feita somente pelos aplicativos, o SGBD não auxilia nessas funções.

a) Somente as afirmações II e IV estão corretas.


b) Somente as afirmações II e III estão corretas.
c) Somente as afirmações I e IV estão corretas.
d) Somente a afirmação II está correta.

Na atividade um, se você respondeu que uma rede de computadores consiste


em fazer uma interligação de computadores independente da distância em que
se encontram, por meio de um determinado meio de comunicação, passando
por um dispositivo ativo ou passivo como hubs, roteadores, switchs ou bridges.
Se você acertou, parabéns! Você atingiu nosso objetivo de compreender quais
são os tipos de redes existentes e como elas são interligadas entre si. Caso não
tenha acertado, você deve retornar ao conteúdo desta aula sobre Redes de
Computadores e ler atentamente sobre suas características e componentes.
Na atividade dois, podemos dizer que um SGBD tem como finalidade geren-
ciar e armazenar informações de forma que seus usuários possam construir,
definir e manipular uma base de dados para as mais diversas finalidades. Se
você acertou parabéns! Você atingiu o objetivo de entender o funcionamento de
um banco de dados e como ele é útil para manipular informações.

unitins • análise e desenvolvimento de sistemas • 1º PeRÍodo 171


aula 6 • comPutação básica

Na atividade três, a resposta correta é a alternativa (a). A afirmação (I)


é verdadeira pelo fato de que, para haver comunicação de dados, se deve
ter uma rede para interligar os equipamentos telefônicos. A afirmação (II) é
verdadeira, já que há impressoras que já têm dispositivos de redes integrados
ao seu hardware. A afirmação (III) é falsa, visto que leitores de CD e outros
dispositivos do computador podem ser compartilhados por fibra óptica, cabo
coaxial, wireless, entre outros. A afirmação (IV) é incorreta, já que se devem
ter vários dispositivos e computadores interligados entre si formando, assim,
uma rede de comunicação. Se você acertou parabéns! Você atingiu o objetivo
de compreender quais são os tipos de redes existentes e como elas são interli-
gadas entre si.

Na atividade quatro, a resposta correta é a alternativa (d). A afirmação


(I) é falsa, porque os bancos de dados são úteis para qualquer aplicação
que se queira guardar dados. A afirmação (II) é verdadeira, visto que o
SGBD é o sistema que interage com o banco de dados por meio dos aplica-
tivos. A afirmação (III) é falsa, já que banco de dados orientados ao objeto
também utilizam da linguagem SQL. A afirmação (IV) é falsa, visto que o
SGBD implementa também aplicações de segurança, controle de acesso
entre outras opções. Se você acertou parabéns! Você atingiu o objetivo de
entender o funcionamento de um banco de dados e como ele é útil para
manipular informações.

RAMALHO, J A. SQL: a linguagem dos bancos de dados. 2. ed. São Paulo:


Berkeley, 1999.

TANENBAUM, A. S. Redes de computadores. 4. ed. Rio de Janeiro: LTC, 2004.

WIKIPÉDIA. Banco de dados. Disponível em: <http://pt.wikipedia.org/wiki/


Banco_de_dados>. Acesso em: 20 dez. 2007.

______. Rede de computadores. Disponível em: <http://pt.wikipedia.org/wiki/


Rede_de_computadores>. Acesso em: 20 dez. 2007.

______. Broadcast. Disponível em: <http://pt.wikipedia.org/wiki/Broadcast>.


Acesso em: 20 dez. 2007.

Serão estudados os cursos superiores de computação e as características


deles. Além disso, serão apresentadas algumas áreas específicas de atuação
profissional, presentes no mercado de trabalho atual. Por fim, trataremos de um
tema bastante polêmico: a regulamentação da profissão. Até lá!

172 1º PeRÍodo • análise e desenvolvimento de sistemas • unitins


aula 7 • comPutação básica

Aula 7
O profissional de informática

Esperamos que, ao final desta aula, você seja capaz de:


• conhecer as áreas de formação profissional na área de computação;
• entender as diferenças entre as instituições de ensino superior e os profis-
sionais na área de informática.

O entendimento das aulas anteriores o tornará capaz de identificar, mais facil-


mente, os diversos segmentos atuais da área de informática. Recomenda-se, ainda,
que estude atentamente, com pensamento crítico, a fim de se tomar posicionamento
diante de temas polêmicos, como, por exemplo, a regulamentação da profissão.

A cada dia, a computação se torna uma das mais importantes ferramentas


já desenvolvidas pelo ser humano. O seu caráter multidisciplinar, aplicável a
uma gama enorme de áreas e tecnologias, tem forte responsabilidade por sua
popularização e valor econômico e social.
O valor econômico pode ser comprovado pelo uso intensivo da computação desde
aplicações para usuários finais de computador até na indústria, passando por serviços
e uso militar. O valor social pode ser comprovado pela interferência no comporta-
mento das pessoas e da sociedade, monitora e agiliza processos judiciais e públicos,
salva vidas quando aplicada na medicina e na produção de medicamentos.
A cada dia que passa, mais dados são gerados e maior é a necessidade
de processá-los a fim de gerar informação. Já parou para pensar sobre a quan-
tidade de dados que você gera diariamente? Quando utilizamos algum equipa-
mento elétrico, informamos o consumo à companhia de energia elétrica. O uso
do telefone, seja fixo ou móvel, é informado à companhia telefônica que abate

unitins • análise e desenvolvimento de sistemas • 1º PeRÍodo 173


aula 7 • comPutação básica

créditos. Quando passamos acima do limite de velocidade por um radar eletrô-


nico, novos dados são gerados para a aplicação da multa. Toda vez em que
usamos um cartão de débito/crédito também são gerados dados. Esses são só
alguns exemplos diários, existem inúmeros outros.
A computação é peça fundamental para o funcionamento da sociedade nos
moldes como a conhecemos hoje, contudo não é peça essencial, uma vez que
durante muito tempo vivemos sem ela. Por toda essa importância e por este curso
formar profissionais de computação, serão apresentados, nesta aula, tópicos
relevantes sobre as possibilidades de atuação do profissional na área de compu-
tação, começando pela formação acadêmica.

7.1 Formação acadêmica


Como é sabido, os estudos podem continuar após o término do ensino
médio ou equivalente. No Brasil, algumas opções de estudos superiores estão
disponíveis para quem queira prosseguir, segundo MEC (2008), são elas: cursos
seqüenciais (com até dois anos de duração) e cursos de graduação (a maioria
com quatro anos de duração, há também cursos de formação tecnológica, com
dois ou três anos de duração e cursos com cinco ou seis anos, como os de enge-
nharia e de medicina).
Podem oferecer os cursos superiores, de acordo com a legislação, institui-
ções de educação superior (IES). Elas são organizadas da forma que apresen-
tamos a seguir.
a) Universidades: são instituições que desenvolvem atividades regulares de
ensino, pesquisa e extensão. As universidades especializadas se dife-
renciam por serem especializadas em um campo do saber como, por
exemplo, ciências da saúde ou ciências sociais. Elas se caracterizam,
de acordo com a LDB (1996) por:
• produção intelectual institucionalizada mediante o estudo sistemá-
tico dos temas e problemas mais relevantes, tanto do ponto de vista
científico e cultural, quanto regional e nacional;
• um terço do corpo docente, pelo menos, com titulação acadêmica
de mestrado ou doutorado;
• um terço do corpo docente em regime de tempo integral.
b) Centros universitários: segundo o Decreto n. 3860, de 9 de julho de
2001, são
[...] instituições de ensino superior pluricurriculares, que se carac-
terizam pela excelência do ensino oferecido, comprovada pelo
desempenho de seus cursos nas avaliações coordenadas pelo
Ministério da Educação, pela qualificação do seu corpo docente
e pelas condições de trabalho acadêmico oferecidas à comuni-
dade escolar (BRASIL, 2001, p. 3).

174 1º PeRÍodo • análise e desenvolvimento de sistemas • unitins


aula 7 • comPutação básica

Já os centros universitários especializados atuam em uma área de conheci-


mento específica ou de formação profissional.
c) Faculdades integradas e faculdades: de acordo com MEC (2008, [s.p.]),
são
[...] instituições de educação superior públicas ou privadas, com
propostas curriculares em mais de uma área do conhecimento,
organizadas sob o mesmo comando e regimento comum, com
a finalidade de formar profissionais de nível superior, podendo
ministrar cursos nos vários níveis (seqüenciais, de graduação, de
pós-graduação e de extensão) e modalidades do ensino.

d) Institutos superiores ou escolas superiores: segundo MEC (2008, s/p),


são “instituições de educação superior, públicas ou privadas, com fina-
lidade de ministrar cursos nos vários níveis (seqüenciais, de graduação,
de pós-graduação e de extensão)”.
e) Centros de educação tecnológica: são descritos, de acordo com MEC
(2008, [s.p.]), como
[...] instituições especializadas de educação profissional, públicas
ou privadas, com a finalidade de qualificar profissionais em cursos
superiores de educação tecnológica para os diversos setores da
economia e realizar pesquisa e desenvolvimento tecnológico de
novos processos, produtos e serviços, em estreita articulação com
os setores produtivos e a sociedade, oferecendo, inclusive, meca-
nismos para a educação continuada.

Terminada a graduação, existem algumas possibilidades de pós-graduação:


lato sensu (especialização e MBA – Master Business Administration) e stricto
sensu (mestrado acadêmico e profissional e doutorado).
A seguir, iremos conhecer os diferentes cursos superiores relacionados
à computação.

7.2 Cursos de formação superior em computação


De acordo com o Currículo de Referência da SBC para Cursos de Graduação
em Computação e Informática, entende-se por computação ou informática “o
corpo de conhecimento a respeito de computadores, sistemas de computação e
suas aplicações, englobando aspectos teóricos, experimentais, de modelagem e
de projeto” (SBC, 1999, p. 1).
Os cursos superiores em computação são divididos de acordo com o enfoque
tecnológico de aplicação e são classificados em atividade-fim e atividade-meio.
Segundo SBC (1999) e as diretrizes curriculares (1996), os cursos que usam
a computação como atividade-fim são os cursos bacharelado em Ciência
da Computação e Engenharia da Computação. Esses cursos “devem ter
mais profundidade nas matérias dos núcleos Fundamentos da Computação e

unitins • análise e desenvolvimento de sistemas • 1º PeRÍodo 175


aula 7 • comPutação básica

Tecnologia da Computação” (SBC, 1999, p. 14). Os cursos com atividade-


meio de computação são denominados bacharelados em Sistemas de
Informação e “devem oferecer uma boa base de fundamentos da computação,
não tão abrangente como os cursos atividade-fim” (SBC, 1999, p. 15). Por outro
lado, os cursos atividade-meio oferecem uma visão mais abrangente do núcleo
de Sistemas de Informação que os cursos atividade-fim. Os cursos atividade-fim
oferecem uma visão mais geral desse núcleo. Existem ainda os cursos superiores
de Tecnologia, que são cursos de menor duração em computação.

Saiba mais

Os cursos que têm a computação como atividade-meio preparam os profis-


sionais para utilizarem, de forma eficaz, as tecnologias de computação em
empresas/instituições. É um curso com enfoque comercial. Como citado anterior-
mente, o curso de Sistemas de Informação entra nessa categoria.
Na categoria de cursos que têm a computação como atividade-fim (Ciência
da Computação e Engenharia da Computação), Simões (2008, p. 2) diz que
estão os cursos que
[...] preparam o profissional que irá construir ou aprimorar
computadores e máquinas que usam tecnologia computacional e
programas de computadores. São cursos adequados, portanto,
àqueles que têm um perfil de pesquisador ou desenvolvedor. [...]
Há necessidade que o aluno tenha aptidão para ciências exatas.

Na seqüência os cursos citados anteriormente serão descritos com maiores


detalhes.

7.2.1 Engenharia da computação


Esse curso combina conhecimentos de computação com engenharia elétrica,
um curso ligeiramente voltado para o projeto e desenvolvimento de hardware
e automação. Por ser engenharia, tem duração de cinco anos e tem sólidos
conceitos de matemática e física. Simões (2008, p.2) expõe que o engenheiro
da computação pode trabalhar com

176 1º PeRÍodo • análise e desenvolvimento de sistemas • unitins


aula 7 • comPutação básica

[...] comunicação de dados e redes, automação industrial e


controle de processos, automação comercial, circuitos e sistemas
integrados e microeletrônica, microprocessadores e suas aplica-
ções, processamento de sinais digitais (imagens, voz), sistemas
embarcados e robótica. O profissional que se forma Engenheiro
da Computação pode especificar, projetar, configurar, instalar,
testar e dar manutenção em sistemas computacionais.

7.2.2 Ciência da Computação


Como o próprio nome diz, tem enfoque científico, voltado para pesquisa
e inovação de tecnologias computacionais. É um curso de computação pura
e aborda conceitos e teorias das mais diversas áreas da computação, como
compiladores, linguagens de programação, inteligência artificial, computação
gráfica, engenharia de software, redes de computadores, sistemas operacionais,
entre outras. Simões (2008, p. 2) afirma que
Matemática, Cálculo e outras disciplinas exatas são reforçadas
nesse curso, assim como a formação em matérias de hardware,
como arquitetura e organização de computadores e circuitos
lógicos, é básica. Quem se forma Cientista da Computação está
preparado para resolver problemas reais com soluções de TI,
e poderá trabalhar em projetos, desenvolvimento e suporte de
sistemas computacionais variados.

Esse curso tem duração mínima de quatro anos.

7.2.3 Sistemas de Informação


Os profissionais formados em Sistemas de Informação desenvolvem soluções
que são utilizadas em diferentes níveis da organização e em diversas áreas.
SBC (2008) expõe que esse curso “visa à formação de profissionais da área de
Computação e Informática para atuação em pesquisa, gestão, desenvolvimento,
uso e avaliação de tecnologias de informação aplicadas nas organizações”.
Nesse curso, também são vistas disciplinas complementares com ênfase no estudo
das organizações. Simões (2008, p. 1) complementa que esses profissionais
[...] apóiam a inovação, planejamento e gerenciamento da
infra-estrutura de informação e coordenação dos recursos de
informação. O desenvolvimento de sistemas de informação por
membros da equipe de SI envolve não apenas sistemas integrados
abrangendo toda a organização, mas também apoio para o
desenvolvimento de aplicações departamentais e indivíduos.

Esse curso tem duração de quatro anos.

7.2.4 Cursos tecnológicos


Os cursos de formação tecnológica formam profissionais que atendem
campos específicos do mercado de trabalho. Os profissionais formados nesses
cursos são denominados tecnólogos. Esses profissionais podem continuar os

unitins • análise e desenvolvimento de sistemas • 1º PeRÍodo 177


aula 7 • comPutação básica

estudos e aperfeiçoamento profissional cursando a pós-graduação stricto sensu


e latu sensu. Os cursos tecnológicos podem ser uma opção para inserção mais
rápida no mercado de trabalho e visam à formação voltada para desenvolvi-
mento, aplicação e difusão de tecnologias. Esses cursos costumam ter entre dois
e três anos de duração.
O curso superior em Análise e Desenvolvimento de Sistemas da Unitins é um
exemplo e foca no desenvolvimento dos mais diversificados tipos de sistemas
e qualifica o profissional para desempenhar análise de sistema. Isso vai ao
encontro de uma necessidade de mercado, carente de profissionais e em franca
expansão. O curso proporciona formação técnica e acadêmica aplicáveis nos
setores industriais, comerciais e de prestação de serviços, incluindo os órgãos
públicos. O curso superior em Tecnologia em Análise e Desenvolvimento de
Sistemas da Unitins tem a duração de dois anos e meio.

Saiba mais

7.3 Áreas de atuação


A partir das formações de nível superior anteriormente mencionadas, que
podem ser encontradas nas mais diversas IES do Brasil, podemos escolher áreas
específicas de atuação.
A seguir, veremos alguns exemplos de áreas específicas de atuação. É
importante acrescentar que existem inúmeras outras. Cada uma das áreas
distingue uma das outras por características próprias e são opções para os
egressos do curso superior em Tecnologia em Análise e Desenvolvimento de
Sistemas da Unitins.
a) Administrador de banco de dados
É também conhecido pela sigla DBA, do inglês DataBase Administrator.
Esse profissional é responsável pelo projeto, manutenção e refinamento
de bancos de dados corporativos. É o profissional responsável pelos
dados e informações da empresa.
b) Administrador de redes
É responsável pela instalação, configuração e manutenção de todos
os serviços de rede de computadores implementados. Inclui-se,
também, pesquisa de soluções de tecnologia, apoio à área de desen-
volvimento de aplicações, configuração e manutenção do nível de
segurança da rede.

178 1º PeRÍodo • análise e desenvolvimento de sistemas • unitins


aula 7 • comPutação básica

c) Analista de sistemas
É responsável pelo levantamento das necessidades do cliente e pela
elaboração de um modelo conceitual do sistema a ser desenvolvido. É o
projetista de sistemas. Fazendo-se analogia com engenharia civil, esse
profissional projeta a “planta” dos sistemas, indicando detalhes técnicos
e algoritmos.
d) Auditor de sistemas
É o profissional encarregado em auditar sistemas e redes corporativas,
identificar fraudes e outros tipos de irregularidade, além de analisar
políticas de uso e de segurança.
e) Programador Web
É o profissional responsável pelo desenvolvimento de aplicações para
Web , em termos de implementação de software. Sua principal atividade
é o desenvolvimento de aplicações para internet e intranets, além de
sítios de comércio eletrônico, por exemplo.
f) Webmaster
É o responsável pela estrutura, projeto e gerência de aplicações Web,
desde equipes envolvidas com essas aplicações até a infra-estrutura.

7.4 Sociedade brasileira de computação - SBC


A SBC é uma “sociedade científica que reúne estudantes, professores e
profissionais de Informática de todo o Brasil” (SBC, 2008, [s.p.]). Sua principal
meta é de estimular o ensino e a pesquisa em computação. Nesse sentido, a
SBC vem fomentando pesquisas científicas e tem papel importante e decisivo no
desenvolvimento tecnológico de computação genuinamente brasileiro.
Fundada em 1978 e sediada em Porto Alegre (RS), está estrutura, segundo
SBC (2008, [s.p.]), em
[...] secretarias regionais e delegacias institucionais, localizadas
em unidades de ensino e pesquisa de vários estados do Brasil.
Estas instituições atuam como um elo na comunicação com os
sócios, além de promoverem diversas atividades e eventos. Os
associados estão divididos nas categorias fundadores, estudantes,
efetivos, institucionais e honorários.

Além dessa organização, existem as comissões especiais (relacionadas às


subáreas de conhecimento específico), responsáveis em organizar simpósios
relacionados às suas subáreas. Especificamente, a comissão de educação é
responsável pelos grupos de trabalho que discutem assuntos de interesse da área
e pelo currículo de referência.
O endereço eletrônico da SBC é <http://www.sbc.org.br>.

unitins • análise e desenvolvimento de sistemas • 1º PeRÍodo 179


aula 7 • comPutação básica

7.5 A regulamentação da profissão no Brasil


As profissões de informática atualmente não são regulamentadas no Brasil
e também não têm um órgão regulamentador. Ao contrário do que ocorre com
outras profissões, como da área de direito, medicina, odontologia, contabili-
dade, jornalismo, administração, entre outras, atualmente qualquer pessoa pode
atuar em informática e no mercado de trabalho de informática.
Desde antes da criação da SBC, a regulamentação da profissão de informá-
tica vem sendo discutida e provocando quentes debates. A Sociedade Brasileira
de Computação tem uma posição institucional consolidada acerca da questão e,
segundo a SBC (2008), segue os seguintes princípios:
• exercício da profissão de informática deve ser livre e independer de
diploma ou comprovação de educação formal;
• nenhum conselho de profissão pode criar qualquer impedimento ou
restrição ao princípio anterior;
• a área deve ser auto-regulada.
Ainda segundo SBC (2008), essa postura segue a posição tomada por
vários países bem sucedidos em informática que permitem o livre exercício da
profissão, sem qualquer tipo de regulamentação ou restrição à liberdade indivi-
dual de trabalho. É assim em países como os Estados Unidos, Inglaterra, França,
Canadá e Espanha.
Por outro lado, outro grupo, também bastante numeroso, defende que a
regulamentação deve restringir o exercício profissional somente a portadores
de diplomas de nível superior com a criação de conselhos. Dentre seus argu-
mentos estão:
• dar alguma prioridade ou proteção ao profissional por meio de um
órgão regulador (conselho) para quem empenhou quatro ou cinco anos
de sua vida para estudar e, em alguns casos, pagar os estudos em uma
IES. Dessa forma, como alternativa, reservar o mercado para apenas
portadores de diploma de nível superior;
• elevar a remuneração dos profissionais de informática, uma vez que
excluiria do mercado a chamada mão de obra desqualificada e, conse-
qüentemente, mais barata;
• fixar remuneração mínima para a categoria;
• diminuir a possibilidade de existência de maus profissionais, o que
aumentaria a boa reputação dos profissionais de informática;
• evitar a competição de “curiosos” do mercado (profissionais sem titu-
lação acadêmica) em concursos públicos com os profissionais regular-
mente formados em informática;
• tornar possível punir profissionais que cometeram crimes de informática,
banindo-os do mercado de trabalho.

180 1º PeRÍodo • análise e desenvolvimento de sistemas • unitins


aula 7 • comPutação básica

Ambos os lados têm fortes argumentos, alguns vantajosos, outros desvanta-


josos para a área e para a sociedade. Por outro lado, segundo Bigonha (2004),
a SBC baseia sua argumentação, principalmente, nos seguintes pontos:
• a SBC propõe uma regulamentação da profissão sem a criação de conse-
lhos, afinal conselhos de profissão têm o propósito de proteger a sociedade
e não de premiar maus profissionais que possuem formação superior;
• profissionais como engenheiros, matemáticos, advogados, administradores,
entre outros, contribuíram para o desenvolvimento da área e ainda têm muito
a contribuir, principalmente considerando o caráter multidisciplinar da infor-
mática. A sociedade seria prejudicada se esses profissionais fossem proibidos
de desenvolver suas soluções mediante o uso da tecnologia da informação;
• para obter proteção, todo profissional de informática pode filiar-se a
algum sindicato, cuja função é defender os interesses dos profissionais,
inclusive de fixar remuneração mínima para a categoria. Assim não há
necessidade de conselho;
• apresentar carteira de um conselho de profissão não é suficiente para
distinguir o profissional qualificado do não qualificado;
• para fazer denúncias e punir maus profissionais, segundo a lei, não é
necessário conselho profissional da área;
• a maior parte dos problemas causados por maus profissionais é muito
mais decorrente de falta de ética ou desonestidade do que por falta de
qualificação acadêmica.
Independente do grupo é evidente que os “curiosos” de mercado dificilmente
conseguiriam competir com profissionais competentes formados por cursos supe-
riores de qualidade. Bigonha (2004) expõe que, em geral, as áreas de atuação
do “curioso” de mercado e do profissional formado são distintas. Os “curiosos”, na
maioria das vezes, focam no uso de sistemas computacionais, resolvendo problemas
simples e de pequeno porte. Alguns conseguem atuar com sistemas computacionais
de complexidade e porte intermediários, contudo dificilmente atuam em problemas
de alta complexidade e grande porte. Esse último é considerado o foco do profis-
sional de nível superior, os dois primeiros certamente estão fora do interesse desses
profissionais. Como em qualquer profissão, na informática, há diferentes níveis de
profissionais e, como conseqüência, remunerações variadas.
Bigonha (2004) argumenta sobre a formação superior com e sem a reserva
de mercado aos profissionais com diploma superior. Ele expõe que se cursam
[...] faculdades para que adquirir as técnicas necessárias para
resolver correta e economicamente problemas relevantes [...]
Cursam-se faculdades para se ter melhor remuneração em virtude
de melhor qualidade do trabalho que se pode produzir. Se o curso
de graduação de uma dada faculdade não produzir uma formação
profissional de boa qualidade e que apenas forme profissionais

unitins • análise e desenvolvimento de sistemas • 1º PeRÍodo 181


aula 7 • comPutação básica

incapazes de competir com os curiosos do mercado, então não há


justificativas para se freqüentar tal curso, a não ser que seja apenas
para facilmente obter um diploma e habilitar-se aos possíveis bene-
fícios de uma reserva de mercado (BIGONHA, 2004, [s.p.]).

Bigonha (2004) completa que se conselhos são destinados para proteger a


sociedade, impedindo profissionais desqualificados de atuarem, então os conselhos
também devem impedir portadores de diploma superior desqualificados de atuarem.
Essa idéia é a que rege a Ordem dos Advogados do Brasil (OAB), que
exige dos bacharéis em direito a aprovação em seu exame para a atuação
profissional. Por outro lado, a SBC prefere conselhos nos moldes do Conselho
de Auto-Regulamentação Publicitária (CONAR), que não ferem os princípios da
liberdade individual ao trabalho.

7.5.1 O projeto de lei


Na edição de 6 de março de 2008 do Jornal do Senado, saiu a notícia “CCT
aprova regulamentação da profissão de analista de sistemas”. Segundo a notícia,
o projeto de lei, que visa a regulamentar os profissionais denominados analista de
sistemas e de técnico de informática, foi aprovado na Comissão de Ciência, Tecnologia,
Inovação, Comunicação e Informática (CCT) no dia 5 de março de 2008.
A proposta foi encaminhada à Comissão de Assuntos Sociais (CAS) para
decisão terminativa. Foi excluída da proposta original a possibilidade de criação
de conselhos federal e regionais de informática, uma vez que esses órgãos são
prerrogativa do Poder Executivo.
De acordo com a proposta,
a profissão de analista de sistemas somente poderá ser exercida por
pessoas que possuam diploma de nível superior [...] Já para o técnico
de informática a proposta determina a comprovação de diploma de
ensino médio ou equivalente de curso técnico de Informática ou de
Programação de Computadores (SENADO FEDERAL, 2008, [s.p.]).

Esse projeto de lei, mesmo com pouco tempo, é tido como polêmica e, diante
disso, a SBC se posicionou por meio de uma correspondência para o Senado
Federal. Veja o conteúdo completo do fato exposto pela SBC (2008, [s.p.]):
atenta aos recentes acontecimentos a respeito do Projeto de Lei
607/2007, que trata da Regulamentação da Profissão, a SBC enviou
correspondência para a Senadora Patrícia Saboya, Presidente da
Comissão de Assuntos Sociais, solicitando Audiência Pública.
Em sua correspondência, a SBC justificou o pedido de Audiência
Pública devido à existência de opiniões diversas e muito diver-
gentes e que, nessa audiência, os diversos pontos de vista, tanto
da SBC quanto de outras organizações sociais, poderão ser
apresentados e debatidos amplamente, possibilitando um melhor
encaminhamento do assunto por parte dos Senadores.

182 1º PeRÍodo • análise e desenvolvimento de sistemas • unitins


aula 7 • comPutação básica

Em resposta, a assessoria da Senadora informou que essa reco-


nheceu a polêmica em torno do assunto e marcará a Audiência
Pública em momento oportuno.

A seguir, estão listados outros Projetos de Lei com tentativas de regulamentar


a profissão:
• PL 815/1995
• PL 2194/1996
• PL 981/1999
• PL 6639/2002
• PL 6640/2002
• PL 1561/2003
• PL 1746/2003
• PL 1947/2003
• PL 6808/2006
• PL 7109/2006
• PL 7236/2006
Estamos chegando ao fim da última aula de Computação Básica. Esta aula
é importante para nortear possibilidades profissionais futuras e esclarecer dife-
renças na formação dos profissionais de computação.

Nesta aula, você aprendeu que a formação acadêmica em computação tem


currículos com características próprias e propósitos diferentes. Inicialmente foram
apresentadas as diferentes classificações de IES no Brasil. A única com obriga-
toriedade de pesquisa é a universidade. Sobre os cursos superiores de compu-
tação, existem os cursos atividade-fim (bacharelado em Ciência da Computação e
Engenharia da Computação), que devem ter mais profundidade nas matérias dos
núcleos fundamentos da computação e tecnologia da computação. Bacharelado
em Sistemas de Informação é um curso superior atividade-meio de computação,
com maior profundidade no núcleo sistemas de informação. Também vimos que
os cursos tecnológicos são de menor duração que visam à formação voltada para
desenvolvimento, aplicação e difusão de tecnologias específicas.
Como exemplos de principais campos de atuação para egressos do curso
superior em Tecnologia em Análise e Desenvolvimento de Sistemas da Unitins,
podemos citar: administrador de banco de dados, administrador de redes,
analista de sistemas, auditor de sistemas, programador Web, webmaster.
Expusemos brevemente sobre a Sociedade Brasileira de Computação (SBC)
e sua importante atuação e seu posicionamento sobre a regulamentação da

unitins • análise e desenvolvimento de sistemas • 1º PeRÍodo 183


aula 7 • comPutação básica

profissão no Brasil. A regulamentação é um tema polêmico e que provoca acalo-


rados debates há muitos anos. Por fim, foi apresentado o panorama atual, do
ponto de vista legal, sobre os projetos de lei.

1. Analise as afirmativas e, em seguida, assinale a alternativa correta.


I. Bacharelado em Ciência da Computação é exemplo de curso que usa a
computação como atividade-fim.
II. Profissionais com formação em cursos superiores de tecnologia são
chamados tecnólogos e não podem fazer pós-graduação (lato sensu e/
ou stricto sensu).
III. O curso bacharelado em Sistemas de Informação prepara os profissio-
nais para utilizarem as tecnologias de computação de forma eficaz em
empresas/instituições.

a) Somente a I está incorreta.


b) Somente a II está incorreta.
c) Somente a III está incorreta.
d) Todas as afirmativas estão corretas.

2. A respeito da regulamentação da profissão de informática no Brasil, assi-


nale a alternativa incorreta.
a) Segundo a SBC, a maior parte dos problemas causados por maus profis-
sionais são muito mais decorrentes de falta de ética ou desonestidade
do que por falta de qualificação acadêmica.
b) Para a SBC, apresentar uma carteira de um conselho de profissão
não é suficiente para distinguir o profissional qualificado do não
qualificado.
c) Ao contrário da SBC, um grande grupo de profissionais acredita que,
para fazer denúncias e punir maus profissionais, segundo a lei, não é
necessário conselho profissional da área.
d) Ao contrário da SBC, um grande grupo de profissionais acredita que,
com a criação de conselhos, será possível fixar remuneração mínima
para a categoria.

3. Escreva um texto de aproximadamente dez linhas expondo as diferenças


entre as instituições de educação superior (IES): universidade, centro univer-
sitário e faculdades.

184 1º PeRÍodo • análise e desenvolvimento de sistemas • unitins


aula 7 • comPutação básica

4. Sobre áreas específicas de atuação do profissional de informática, leia as


características a seguir e assinale a alternativa que representa, na respectiva
ordem, os nomes corretos de cada área.
I. Profissional responsável pelos dados e informações da empresa.
II. Responsável pelo levantamento das necessidades do cliente e pela
elaboração de um modelo conceitual do sistema a ser desenvolvido.
III. Profissional encarregado em identificar fraudes e outros tipos de irregu-
laridades em sistemas computacionais.
IV. Responsável pelo desenvolvimento de aplicações para Web, em termos
de implementação de software.

a) Analista de sistemas, administrador de redes, auditor de sistemas,


webmaster.
b) Administrador de banco de dados, administrador de redes, progra-
mador Web, webmaster.
c) Administrador de redes, administrador de banco de dados, webmaster,
analista de sistemas.
d) Administrador de banco de dados, analista de sistemas, auditor de
sistemas, programador Web.

A resposta da atividade um é (b). A afirmativa (I) é verdadeira, já que os cursos


que usam a computação como atividade-fim são Engenharia da Computação e
bacharelado em Ciência da Computação. A afirmativa (II) é falsa, uma vez que,
como em qualquer curso superior, os tecnólogos podem fazer qualquer pós-
graduação (lato sensu e/ou stricto sensu). A afirmativa (III) é verdadeira porque
o curso bacharelado em Sistemas de Informação tem um enfoque maior no
núcleo de Sistemas de Informação, que visa a utilizar os recursos de Tecnologia
de Informação na solução de problemas de setores produtivos da sociedade.
Isso inclui empresas/instituições.
Na atividade dois, a resposta é a alternativa (c). A alternativa (a) é verda-
deira, porque a SBC realmente defende que problemas causados por maus
profissionais são, em maior parte, decorrentes de falta de ética. A alternativa (b)
também é verdadeira, já que representa um pensamento institucional da SBC, de
que conselho de profissão não é suficiente para distinguir o profissional qualifi-
cado do não qualificado. A alternativa (c) é falsa, porque o pensamento exposto
é da SBC e não do grupo contrário à posição da SBC. A alternativa (d) é verda-
deira, porque a SBC acredita que, mesmo sem conselhos, sindicatos podem esta-

unitins • análise e desenvolvimento de sistemas • 1º PeRÍodo 185


aula 7 • comPutação básica

belecer remuneração mínima para a categoria. Essa é uma posição do grupo


contrário à posição da SBC sobre a regulamentação da profissão.
Na atividade três, você expôs que as universidades devem desenvolver ativi-
dades de ensino, pesquisa e extensão. Devem ainda ter um terço do corpo
docente com titulação de mestrado ou doutorado e um terço do corpo docente
em regime de tempo integral de trabalho. Os centros universitários se carac-
terizam pela excelência do ensino oferecido. As faculdades podem ministrar
cursos nos vários níveis (seqüenciais, de graduação, de pós-graduação e de
extensão) e modalidades do ensino. Os centros universitários e as faculdades
não têm obrigatoriedade de pesquisa, titulação e um mínimo do corpo docente
com regime de tempo integral.
A resposta correta da atividade quatro é a letra (d). O profissional respon-
sável pelos dados e informações da empresa é o administrador de banco de
dados. O analista de sistemas é o responsável pelo levantamento das neces-
sidades do cliente e pela elaboração de um modelo conceitual sistema a ser
desenvolvido. O profissional encarregado para identificar fraudes e outros tipos
de irregularidades em sistemas computacionais são os auditores de sistemas.
Por fim, o programador Web é responsável pelo desenvolvimento de aplicações
para Web, em termos de implementação de software.
Se você acertou essas atividades, atingiu os objetivos propostos para esta
aula: conhecer as áreas de formação profissional na área de computação e
entender as diferenças entre as instituições de ensino superior e os profissionais
na área de informática.

BIGONHA, Roberto da Silva. Perguntas freqüentes sobre a regulamentação da


profissão. 2004. Disponível em: <http://homepages.dcc.ufmg.br/~bigonha/
Sbc/plsbc-faq.html>. Acesso em: 20 ago. 2008.
BRASIL. Lei n. 9.394, de 20 de dezembro de 1996. Estabelece as diretrizes
e bases da educação nacional. Disponível em: <http://www.planalto.gov.br/
ccivil_03/Leis/L9394.htm>. Acesso em: 25 jul. 2003.
______. Decreto n. 3.860, de 9 de julho de 2001. Dispõe sobre a organização
do ensino superior, a avaliação de cursos e instituições, e dá outras providências.
Disponível em: <http://portal.mec.gov.br/sesu/arquivos/pdf/decreto3860.
pdf>. Acesso em: 20 ago. 2008.
MEC. Educação superior: cursos e instituições. Disponível em: <http://www.
educacaosuperior.inep.gov.br>. Acesso em: 25 ago. 2008.

SBC – Sociedade Brasileira de Computação. Portal de informações da SBC.


Disponível em: <http://www.sbc.org.br>. Acesso em: 23 ago. 2008.

186 1º PeRÍodo • análise e desenvolvimento de sistemas • unitins


aula 7 • comPutação básica

SBC – Sociedade Brasileira de Computação. Currículo de referência da SBC para


cursos de graduação em Computação e Informática. Disponível em: <http://
www.sbc.org.br/index.php?language=1&subject=28>. Acesso em: 19 ago.
2008.
SENADO FEDERAL. Jornal do senado. 2008. Disponível em: <http://www.
senado.gov.br/jornal/noticia.asp?codEditoria=22&dataEdicaoVer=20080306
&dataEdicaoAtual=20080306&nomeEditoria=Comiss%F5es&codNoticia=675
95>. Acesso em: 1 set. 2008.
SIMÕES. Qual a diferença entre os cursos de Sistemas de Informação, Engenharia
da Computação e Ciência da Computação? Disponível em: <http://www.teena-
geronline.com.br/docs/diferencas.pdf>. Acesso em: 23 ago. 2008.

Anotações

unitins • análise e desenvolvimento de sistemas • 1º PeRÍodo 187


aula 7 • comPutação básica

188 1º PeRÍodo • análise e desenvolvimento de sistemas • unitins


EQUIPE UNITINS
Organização de Conteúdos Acadêmicos Eleusa Maria Leão
Marcelo Ribeiro de Oliveira
Coordenação Editorial Maria Lourdes F. G. Aires

Assessoria Editorial Marinalva do Rêgo Barros

Revisão Didático-Pedagógica Francisco Gilson Rebouças Pôrto Junior

Revisão Lingüístico-Textual Kyldes Batista Vicente

Gerente de Divisão de Material Impresso Katia Gomes da Silva

Revisão Digital Vladimir Alencastro Feitosa

Projeto Gráfico Irenides Teixeira


Katia Gomes da Silva
Ilustração Geuvar S. de Oliveira

Capas Igor Flávio Souza

Equipe EADCON
Coordenador Editorial William Marlos da Costa

Assistentes de Edição Ana Aparecida Teixeira da Cruz


Janaina Helena Nogueira Bartkiw
Lisiane Marcele dos Santos
Programação Visual e Diagramação Denise Pires Pierin
Kátia Cristina Oliveira dos Santos
Monica Ardjomand
Rodrigo Santos
Sandro Niemicz
William Marlos da Costa
Prezado acadêmico,
Antes de tudo, nós o parabenizamos pela escolha do curso de Tecnologia
em Análise e Desenvolvimento de Sistemas. Nossa disciplina, Informática e
Sociedade, objetiva proporcionar-lhe momentos de reflexão sobre a socie-
dade em que você vive, levando-o a pensar de maneira teórica e prática
sobre as transformações sociais, econômicas e culturais, provocadas pelo
uso das tecnologias da informação e comunicação, bem como levá-lo a
posicionar-se de maneira crítica diante desde novo contexto.

Apresentação
Procuramos apresentar os conteúdos por meio de uma linguagem
simples, sem, contudo, descuidar das reflexões teóricas, tão necessárias
à compreensão da realidade. Assim, você deverá compreender mais facil-
mente este assunto, estando pronto para se posicionar como um profissional
de informação, capaz de interagir e dialogar interdisciplinarmente com as
demais áreas da sociedade e não simplesmente imergir em conceitos pura-
mente computacionais.
Estruturamos nossas aulas da seguinte forma: primeiramente, eviden-
ciamos os condicionantes históricos que propiciaram o surgimento da socio-
logia. Logo após, mostramos as transformações pelas quais a sociedade
passou, desde a Revolução Industrial até o surgimento da sociedade da infor-
mação. Nesta sociedade, cada setor é influenciado pela informatização,
assim procuramos evidenciar as alterações no cotidiano dos cidadãos devido
aos impactos das Tecnologias da informação e da Comunicação (TIC). Em
seguida, procuramos analisar as implicações culturais do desenvolvimento
das tecnologias digitais de informação e de comunicação. Também nos preo-
cupamos em descrever os novos desafios exigidos pelo mercado de trabalho
da sociedade do século XXI. Por fim, buscamos suscitar algumas discussões
sobre a ética e exclusão digital.
Desejamos sucesso na disciplina e em todo o curso, lembrando-lhe
que o material aqui apresentado é uma pequena parte, diante da infi-
nidade de possibilidades de aprendizagem que o mundo atual lhe
oferece. Bons estudos!
Prof.ª Eleusa Maria Leão
Prof. Marcelo Ribeiro de Oliveira
EMENTA
Fundamentos de sociologia. Impactos da informática sobre a sociedade.
Mercado de trabalho e a situação atual da informatização da sociedade
brasileira nos seus vários setores. O profissional de informática e a ética
profissional. O futuro da informática e da sociedade.
Plano de Ensino

OBJETIVOS
• Possibilitar o exercício do espírito crítico e reflexivo a respeito
das questões éticas, políticas, sociais e econômicas surgidas na
Sociedade da Informação.
• Identificar as principais características da sociedade baseada no
paradigma da informação e comunicação.
• Possibilitar a reflexão sobre os fundamentos teóricos que embasam o
uso da informação e a aplicação dela e das tecnologias no mercado
de trabalho global, bem como na atual sociedade brasileira.

CONTEÚDO PROGRAMÁTICO
• Fundamentos de sociologia
• Impactos da informática sobre a sociedade
• Mercado de trabalho e a nova economia global
• Situação atual da informatização da sociedade brasileira
• O profissional de informática
• O futuro da informática
BIBLIOGRAFIA BÁSICA
LIMA, Frederico O. A sociedade digital: o impacto da tecnologia na sociedade,
na cultura, na educação e nas organizações. Rio de Janeiro: Qualitymark,
2000.
RUBEN, Guilhermo; WAINER, Jacques; DWYER, Tom. Informática, organizações
e sociedade no Brasil. São Paulo: Cortez, 2003.
SCHAFF, Adam. A sociedade informática: as conseqüências sociais da segunda
revolução industrial. São Paulo: Brasiliense, 2001.

BIBLIOGRAFIA COMPLEMENTAR
CASTELLS, Manuel. A sociedade em rede. 9. ed. São Paulo: Paz e Terra, 2006.
MASIERO, Paulo César. Ética para computação. São Paulo: Edusp, 2001.
ROVER, Aires José. Direito, sociedade e informática: limites e perspectivas da
vida digital. Florianópolis: Fundação Boiteux, 2000.

unitins • análise e desenvolvimento de sistemas • 1º PeRÍodo 193


aula 1 • infoRmática e sociedade

Aula 1
Fundamentos de Sociologia

“Contemplar todos os homens do mundo, que se


unem em sociedade para trabalhar, lutar e aper-
feiçoar-se, deve-lhe agradar mais do que qualquer
outra coisa.”
(Antônio Gramsci - em uma carta escrita da prisão ao
seu filho Delio)

Esperamos que, ao final desta aula, você seja capaz de:


• identificar o contexto histórico em que se deu o surgimento da sociologia;
• relacionar as principais idéias dos clássicos da sociologia.

Para acompanhar esta aula, você necessita, primeiramente, ter vontade de


discutir e analisar a complexa sociedade em que vivemos, procurando indagar
o que levou à constituição social atual e também questionar-se sobre o futuro
desta sociedade. Em segundo lugar, é preciso que você pense a respeito das
condições históricas, econômicas e sociais existentes no século XIX, momento em
que a sociologia surgiu como ciência.

Nesta aula, veremos como se deu o surgimento da sociologia, buscando


evidenciar o momento em que os fenômenos sociais se constituíram em objeto do
conhecimento científico, enfocando os aspectos econômicos, sociais e políticos
que propiciaram o aparecimento e formação desta ciência, bem como apre-
sentar, de maneira resumida, as principais idéias de três autores considerados
clássicos nesta ciência: Durkheim, Weber e Marx.

unitins • análise e desenvolvimento de sistemas • 1º PeRÍodo 195


aula 1 • infoRmática e sociedade

1.1 A importância da Sociologia


Vivemos hoje em uma sociedade marcada pelo desenvolvimeno das tecnolo-
gias da informação e comunicação (TIC). Esta sociedade (chamada por alguns
de sociedade da informação) deve ser analisada não somente no plano quanti-
tativo (aumento dos computadores), mas também no plano qualitativo (resultados
sociais e econômicos na sociedade como um todo). Nas palavras de Costa
(1998, p. 11), “esta sociedade tem características que precisam ser conhecidas
para que aqueles que nela atuam tenham sucesso.” Portanto, em todos os setores
da vida humana os conhecimentos sociológicos são importantes. É por isso que
esta disciplina faz parte dos programas universitários de praticamente todos os
cursos. Mas o que é sociologia e o que ela estuda?
Para Vila Nova (2000), a sociologia não representa apenas um conjunto
de explicações científicas a respeito da vida social, mas, igualmente, um modo
particular de ver e interpretar os fenômenos sociais. Assim, podemos dizer que a
sociologia é uma ciência que se define não por seu objeto de estudo (as intera-
ções de indivíduos e grupos) mas por sua abordagem, ou seja, pela forma como
pesquisa, analisa e interpreta os fenômenos sociais.
Na concepção de Vila Nova (2000), o estudo sociológico proporciona o
autoconhecimento, ao mesmo tempo que contribui para a formação de uma
consciência social.
Para uma melhor compreensão do que seja esta ciência, é preciso eviden-
ciar que a preocupação em explicar e conhecer os fenômenos sociais sempre
estiveram presentes ao longo da história da humanidade. No entanto, a socio-
logia somente aparece como ciência, no século XIX, momento em que o modo
de produção capitalista se firma na Europa Ocidental, se constituindo, em certa
medida, como uma resposta intelectual às transformações oriundas da revolução
Industrial e Francesa, que afetaram, cada uma a seu modo, a mentalidade e o
estilo de vida das pessoas. É importante ressaltar que a sociologia não apareceu
de repente e, muito menos, se constituiu em obra de um único autor. Na verdade,
uma série de acontecimentos ocorridos ao longo de aproximadamente três
séculos contribuíram para o seu surgimento. Assim, a sociologia se originou a
partir da tentativa de se compreender as situações sociais extremamente novas,
criadas pela nascente sociedade capitalista (MARTINS, 1994).
Bom, se a sociologia só aparece no século XIX, voce deve estar se pergun-
tando: como eram os estudos sobre a sociedade nos períodos anteriores à
formação da sociedade industrial? Nesses períodos, os fenômenos sociais eram
analisados mais filosófica do que cientificamente. Na Antiguidade, bem como na
Idade Média, os estudos assumiam um caráter normativo e finalista, na medida
em que buscavam estabelecer normas ou regras de conduta para a vida social,
ou propor como finalidade da vida em sociedade a realização desta organi-
zação social (LEMOS FILHO, 2001).

196 1º PeRÍodo • análise e desenvolvimento de sistemas • unitins


aula 1 • infoRmática e sociedade

Ao final da Idade Média, iniciou-se a gestação de um novo tipo de conhe-


cimento caracterizado pela objetividade e realismo, modificando claramente
as explicações dadas aos fenômenos da natureza e, consequentemente, aos
problemas humanos e sociais. Uma série de transformações econômicas, polí-
ticas, sociais e culturais, ocorridas a partir do século XV, levaram a essa nova
forma de pensamento. Todas estas transformações estão vinculadas entre si e
não podem ser entendidas de maneira isolada Na perspectiva de Florestan
Fernandes, citado por Lemos Filho (2001) a substituição progressiva de uma
concepção normativa e especulativa por uma análise positiva da sociedade,
se deve a um conjunto de fatores de natureza intelectual, sociocultural e fatores
decorrentes da própria dinânica do “sistema de ciências”. Vamos conhecer quais
foram esses fatores?

1.1.1 Fatores socioculturais


A transição do feudalismo para o capitalismo se deu em virtude de várias
mudanças na vida econômica e política da Europa, tais como a expansão marí-
tima e comercial, as reformas protestantes, a formação dos Estados Nacionais,
assim como o desenvolvimento científico e tecnológico, contribuindo este último,
para o que denominamos Revolução Industrial, iniciada na Inglaterra, por volta
de 1750. Esta revolução provocou mudanças de ordem tecnológica, econômica
e social, transformando profundamente toda a sociedade européia. Máquinas
passaram a substituir o trabalho humano. Estas, assim como as terras e ferra-
mentas, concentraram-se nas mãos dos burgueses, provocando a acumulação
de riquezas e convertendo grandes massas humanas, oriundas do meio rural,
em meros trabalhadores despossuídos. Assim, a Revolução Industrial criou um
fosso entre os proprietários dos meios de produção e os assalariados, levando
estes últimos a repudiar tal situação, manisfestando-se de diversas formas tais
como a destruição de máquinas, atos de sabotagem, roubos, crimes, explosões
de fábricas, evoluindo para a criação de associações livres e formação de sindi-
catos, dentre outros meios. Você deve estar se perguntando, qual a importância
desses acontecimentos para a sociologia? Carlos Benedito Martins, em seu livro
O que é sociologia, nos dá a resposta:
o que merece ser salientado é que a profundidade das transfor-
mações em curso colocava a sociedade num plano de análise,
ou seja, esta passava a se constituir em ‘problema’, em ‘objeto’
que deveria ser investigado. Os pensadores ingleses que teste-
munhavam estas preocupações e com elas se preocupavam não
eram, no entanto, homens de ciência ou sociólogos que viviam
desta profissão. Eram antes de tudo homens voltados para a
ação, que desejavam introduzir determinadas modificações na
sociedade [...] os precursores da sociologia foram recrutados
entre militantes políticos, entre indivíduos que participavam e se
envolviam profundamente com os problemas de suas sociedades
(MARTINS, 1994, p. 14-15).

unitins • análise e desenvolvimento de sistemas • 1º PeRÍodo 197


aula 1 • infoRmática e sociedade

A citação anterior nos permite afirmar que vários teóricos concordaram em


que a nova sociedade industrial produzira transformações inteiramente novas e
que mereciam ser analisadas. Portanto, percebemos que os problemas sociais,
decorrentes das rápidas transformações, passaram a ser percebidos e analisados
de uma forma inteiramente diferente da que ocorria em épocas anteriores.

1.1.2 Fatores intelectuais


Conforme vimos no item anterior, os abalos provocados pela Revolução
Industrial contribuiram para o aparecimento da sociologia. No entanto, deve-se
evidenciar que uma outra circunstância também concorreria para o seu surgi-
mento. Trata-se das modificações nas formas de pensamento. Segundo Martins
(1994, p. 17),
A partir daquele momento, o pensamento paulatinamente vai
renunciando a uma visão sobrenatural para explicar os fatos
e substituindo-a por uma indagação racional. A aplicação da
observação e da experimentação, ou seja, do método científico
para a explicação da natureza, conhecia uma fase de grandes
progressos. Num espaço de cento e cinquenta anos, ou seja, de
Copérnico a Newton, a ciência passou por um notável progresso,
mudando até mesmo a localização do planeta Terra no cosmo.

A citação anterior nos permite perceber que toda a gama de alterações


nos campos econômicos, sociais e tecnológicos contribuiu para que a razão se
confrontasse com o dogmatismo e autoridade eclesial, criando novas explica-
ções para os fatos sociais. Os estudos desses pensadores objetivavam demons-
trar que as instituições da época eram irracionais e injustas, atentando contra a
natureza dos indivíduos, impedindo-os de ter liberdade e igualdade, devendo,
por isso, ser eliminadas. Dentre estes pensadores, merecem especial destaque
os iluministas, que, procedendo a uma análise crítica da sociedade, propunham
não só o estudo desta, mas também sua transformação.
De acordo com esta concepção da realidade, a filosofia “não constitui um
mero conjunto de noções abstratas distante da realidade, mas, ao contrário, um
valioso instrumento prático que criticava a sociedade presente, vislumbrando
outras possibilidades de existência social, além das existentes” (MARTINS,
1994, p. 22). Esta nova forma de pensar afastava interpretações superticiosas e
crenças infundadas sobre a realidade, ao mesmo tempo que possibilitava uma
análise racional dos fenômenos históricos e sociais. Tal forma de pensar não era
um privilégio somente de filósofos, pois também os “homens comuns” passaram
a perceber as instituições sociais e normas como frutos da atividade humana e
passíveis de transformaçõe, e não como fenômenos sagrados e sobrenaturais
como eram vistos anteriormente.
Na França, os conflitos travados entre a burguesia ascendente e a monar-
quia absolutista, culminaram na Revolução Francesa, ocorrida em 1789. Esta

198 1º PeRÍodo • análise e desenvolvimento de sistemas • unitins


aula 1 • infoRmática e sociedade

destruiu os fundamentos da ordem feudal, proporcioando à burguesia a aqui-


sição do poder político.

1.1.3 O sistema de ciências


As duas revoluções, Francesa e Industrial, na medida em que promoveram
grandes inovações sociais, trouxeram crises e desordens para a sociedade, levando
inúmeros pensadores a refletir sobre as consequências das mesmas. Dentre estes
estão os positivistas, cujo principal representante é Augusto Comte. Este conside-
rava que a humanidade se encontrava em uma fase de extrema desorganização
social e que seria necessário buscar soluções, “remédios” para os problemas
sociais. Para Comte, os problemas sociais tinham origem na ordem moral.
Ainda segundo esta corrente, os fenômenos sociais estão sujeitos a leis rigo-
rosas, de modo que a aplicação da experimentação e da observação, ou seja, do
método científico, tão bem utilizado no estudo dos fenômenos da natureza, seria
fundamental para a observação das questões sociais, combinando o uso da razão
e da observação em suas análises. Desta forma, a análise da sociedade deveria
se desvincular das posições políticas, ideologias e valores morais, pois os juízos
de valor e preconceitos atrapalhariam a objetividade das Ciências Sociais.
Percebemos que a sociologia surge com interesses práticos, como uma
resposta intelectual aos sérios problemas de uma sociedade em crise. A jovem
ciência aparece com a tarefa de repensar teoricamente a sociedade, a partir do
estudo de instituições como a família, a autoridade, a hierarquia.
Procedendo desta forma, ou seja, instaurar um estado de equi-
líbrio numa sociedade cindida pelos conflitos de classe, esta
sociologia inicial revestiu-se de um indisfarçável conteúdo estabi-
lizador, ligando-se aos movimentos de reforma conservadora da
sociedade (MARTINS, 1994, p. 31).

Até aqui vimos como se deu o surgimento da sociologia. A partir de agora,


veremos um pouco sobre as teorias de três autores considerados clássicos
nesta ciência.

1.2 Os clássicos da Sociologia


Conforme vimos no decorrer desta aula, foram os problemas oriundos da
constituição de uma nova sociedade, a sociedade capitalista, que levaram os
pensadores a buscar explicações científicas para os fenômenos sociais. Portanto,
o seu surgimento se deu a partir da necessidade de se realizarem reflexões sobre
as transformações, crises e antagonismos existentes na sociedade européia
ocidental. Três análises sociológicas (teorias) que procuraram entender toda essa
gama de transformação se tornaram clássicas: as teorias de Émile Durkheim,
Karl Marx e Max Weber. Tais teóricos buscaram explicar o que estava acon-
tecendo, ou seja, analisar as transformações pelas quais a Europa Ocidental

unitins • análise e desenvolvimento de sistemas • 1º PeRÍodo 199


aula 1 • infoRmática e sociedade

passava ao longo do século XIX (mudanças estas que vinham ocorrendo desde
o final da Idade Média, como já comentamos), por meio de métodos diversos.
Portanto, estes pensadores analisaram, por meio de perspectivas diferentes, a
mesma realidade, a sociedade capitalista.
Vamos agora conhecer um pouco sobre cada um deles, deixando claro que
todos procuram entender como se dá a relação indivíduo-sociedade.
• Émile Durkheim (1858-1917), teórico francês, discípulo de Comte, foi o
primeiro a buscar desenvolver um método e definir o objeto de estudo
da sociologia.
Durkheim buscou analisar a relação indivíduo-sociedade tendo como
ponto de partida a força que a sociedade exerce sobre o indivíduo.
Para ele, “a sociedade é um conjunto de normas de ação, pensamento
e sentimento que não existem apenas nas consciências dos indivíduos,
mas que são construídas exteriormente (grifo do autor), isto é, fora das
consciências individuais” (TOMAZI,1998, p. 18). Portanto, segundo
este autor, ao viver em sociedade, os homens se defrontam com uma
série de normas e regras de conduta que não foram criadas por eles,
mas que lhes são impostas, de modo que o não cumpri-las implica algum
tipo de sanção. Várias situações do nosso dia-a-dia servem para ilustrar
o que esse teórico nos aponta: o modo de vestir, a imposição da língua
nacional, o cumprimento das leis, evidenciam a pressão que a sociedade
faz sobre o indivíduo, adaptando-o ao que a sociedade julga como
certo. Um outro exemplo é o uso dos avanços tecnológicos nas transa-
ções comerciais, tais como a Internet. Na perspectiva durkheimiana, os
empresários podem, ou não, se utilizar destas ferramentas, mas, caso
não o façam podem sofrer uma série de problemas que tornarão inviá-
veis seus negócios.
• Max Weber (1864-1920), teórico alemão, procurou analisar a relação
indivíduo-sociedade, partindo do indivíduo, centrando seus estudos nas
ações individuais. Para Weber, a sociedade deve ser compreendida a
partir da análise das ações individuais, ou seja, segundo ele, os indiví-
duos fazem escolhas, na medida em que atribuem significado às suas
ações. Dessa forma, somente iremos entender as ações individuais se
identificarmos os motivos que levam os indivíduos a agir. Portanto, para
Weber, a sociedade não é algo superior ou exterior ao individuo, mas
um conjunto de ações reciprocamente referidas. Assim, se na perspec-
tiva durkheimiana, um empresário adota certo uso de tecnologia em
virtude da pressão que a sociedade exerce sobre ele, na concepção
weberiana, é o indivíduo, que motivado por valores, razão, estados
emocionais ou tradição, faz as escolhas que julgar necessárias e mais
produtivas (TOMAZI, 1998).

200 1º PeRÍodo • análise e desenvolvimento de sistemas • unitins


aula 1 • infoRmática e sociedade

• Karl Marx (1818-1883) também refletiu sobre a relação indivíduo-socie-


dade, mas por uma perspectiva diferente dos teóricos anteriores. Para
ele, não se pode analisar as relações sociais se não tomarmos como
ponto de partida a forma como os homens de relacionam para produzir,
observando como estes utilizam as forças produtivas e a forma como
se processam as relações de produção. Portanto, se quisermos efetiva-
mente entender a estrutura social, devemos partir da análise de sua base
material, pois esta é que condiciona as demais instituições sociais.
Marx estudou a sociedade capitalista, procurando evidenciar suas
contradições e os conflitos existentes entre as diferentes classes sociais,
ou seja, as lutas travadas entre aqueles que detém os meios de produção
e os que vendem a sua força de trabalho. Para este teórico, no capita-
lismo existem basicamente duas classes, a burguesia e proletariado. A
primeira detém e controla dos meios de produção; a segunda, expro-
priada destes meios, vende sua força de trabalho em troca de salários.
Marx afirmava que a sociedade capitalista seria substituída por uma
sociedade sem classes, a sociedade socialista.
Utilizando-nos do exemplo dado para ilustrar a teoria dos demais autores, o
uso de tecnologias, poderíamos dizer que, na concepção marxista, deveríamos
analisar quem detém esses meios de produção e quem se beneficia da venda e
utilização dessas tecnologias.

Saiba mais

Esta breve explanação sobre os clássicos da sociologia objetivou colocá-lo


em contato, mesmo que de maneira sucinta, com as idéias destes teóricos. Suas
teorias, mesmo tendo sido criadas há muito tempo, ainda servem para explicar a
realidade, e vários teóricos hoje tomam como ponto de partida de seus estudos
as concepções destes pensadores.

Nesta aula vimos, as condições históricas que contribuíram para o surgi-


mento da sociologia. Percebemos que esta ciência surgiu no século XIX, em
decorrência de uma série de fatores econômicos, políticos, culturais e sociais.

unitins • análise e desenvolvimento de sistemas • 1º PeRÍodo 201


aula 1 • infoRmática e sociedade

Entramos em contato também com as idéias de três clássicos da sociologia:


Weber, Marx e Durkheim, que procuraram, cada um a seu modo, entender e
explicar a sociedade capitalista. A compreensão das teorias destes autores nos
ajuda a analisar melhor a sociedade em que vivemos.

1. Esta aula possibilitou-lhe conhecer as condições que contribuíram para o


surgimento da sociologia. O que você poderia dizer sobre os impactos
provocados pela Revolução Industrial sobre a sociedade européia?

2. Nesta aula você teve oportunidade de entrar em contato com as teorias dos
clássicos da sociologia. Procure demonstrar, na forma de texto, as principais
diferenças entre estes autores.

3. No decorrer da aula, vimos que várias transformações ocorridas na sociedade


européia levaram ao surgimento da sociologia. Com base no conteúdo exposto,
analise as assertivas abaixo e, logo após, assinale a resposta correta.
I. A jovem ciência aparece com a tarefa de repensar teoricamente a socie-
dade, a partir do estudo de instituições como a família, a autoridade, a
hierarquia.
II. As revoluções, Francesa e Industrial, provocaram crises e desordens na
sociedade, levando inúmeros pensadores a refletir sobre suas conse-
quências. Dentre estes estão os positivistas.
III. Com os iluministas procurou-se fazer uma interpretação normativa e
finalista da sociedade, na medida em que se buscava entender as fina-
lidades e normas sociais que deveriam ser seguidas.

a) apenas I e II estão corretas;


b) apenas II e III estão corretas;
c) apenas I e III estão corretas;
d) I, II e III estão corretas.

4. Em relação ao pensamento dos clássicos da sociologia, analise as alterna-


tivas a seguir e assinale a resposta correta.
a) Marx faz suas análises procurando identificar a pressão que a sociedade
exerce sobre o indivíduo por meio da imposição de normas e regras.
b) Weber tem como ponto de partida de sua teoria o estudo das condi-
ções materiais de produção como determinantes das demais situa-
ções sociais.

202 1º PeRÍodo • análise e desenvolvimento de sistemas • unitins


aula 1 • infoRmática e sociedade

c) Durkheim procura estudar como o indivíduo faz escolhas dentro


da sociedade.
d) Durkheim evidencia que a sociedade impõe sobre o indivíduo uma
série de normas e regras às quais ele é obrigado a seguir, sob pena
de sofrer sanções.

Na atividade um, com certeza, você deve ter dito que esta revolução
provocou profundas transformações em toda a sociedade européia, face
ao avanço das tecnologias. Deve também ter evidenciado que as máquinas
passaram a substituir o trabalho humano e que as terras e ferramentas concen-
traram-se nas mãos dos burgueses, provocando a acumulação de riquezas
e convertendo grandes massas humanas, oriundas do meio rural, em meros
trabalhadores despossuídos. Assim, você deve ter afirmado que a revolução
industrial criou um abismo entre os que detiam os meios de produção e os assa-
lariados. Com certeza você argumentou que toda esta situação de insatisfação
levou trabalhadores e teóricos a questionar tal realidade, contribuindo assim,
para o surgimento da sociologia.
Na atividade dois, você acertou a questão caso tenha dito que esses teóricos
se diferenciam bastante na forma como analisam a relação indivíduo-sociedade.
Você deve ter apontado que Emile Durkheim faz todas as suas análises partindo
da força que a sociedade exerce sobre o indivíduo , ao passo que Max Weber
tem como ponto de partida as ações sociais, ou seja, o indivíduo fazendo esco-
lhas. Já Karl Marx, desenvolve sua teoria tomando como elemento-chave a forma
com os homens se relacionam para produzir.
Na atividade três, você acertou caso tenha escolhido a letra (a). Somente
estão corretas as assertivas I e II. A assertiva três está incorreta, pois os ilumi-
nistas buscavam explicar os problemas sociais de maneira racional e objetiva,
fugindo dos posicionamentos normativos e finalistas, comuns aos pensadores
medievais e da Antiguidade.
Na atividade quatro, se você escolheu a letra (d), acertou. Durkheim ressalta,
em sua teoria, a força que a sociedade exerce sobre o indivíduo, por meio da
imposição de normas e regras de conduta. Já Weber faz o contrário: são as
escolhas individuais que serão observadas. E Marx faz todas as suas análises
evidenciando a maneira como os homens se relacionam para produzir.

COSTA, Cristina. Sociologia: introdução à ciência da sociedade. 2. ed. São


Paulo: Moderna, 1998.

unitins • análise e desenvolvimento de sistemas • 1º PeRÍodo 203


aula 1 • infoRmática e sociedade

LEMOS FILHO, Arnaldo. As ciências sociais e o processo histórico. In:


MARCELLINO, Nelson C. Introdução às ciências sociais. 10. ed. Campinas:
Papirus, 2001.
MARTINS, Carlos Benedito. O que é sociologia. 38. ed. São Paulo: Brasiliense,
1994. (Primeiros Passos)
QUINTANEIRO; BARBOSA; OLIVEIRA. Um toque de clássicos. 3. ed. Belo
Horizonte: UFMG, 2000.
TOMAZI, Nelson Dacio (Coord.). Iniciação à sociologia. São Paulo: Atual, 1998.
VILA NOVA, Sebastião. Introdução à sociologia. 5. ed. São Paulo: Atlas, 2000.

Discutiremos os impactos sociais e econômicos provocados pela revolução


industrial e tecnológica. Quais transformações a revolução industrial e tecno-
lógica provocaram nas sociedades do século XX? Pense a respeito e leia a
próxima aula.

Anotações

204 1º PeRÍodo • análise e desenvolvimento de sistemas • unitins


aula 2 • infoRmática e sociedade

Aula 2
A sociedade da informação

Esperamos que, ao final desta aula, você seja capaz de:


• identificar as transformações ocorridas na sociedade desde a Revolução
Industrial até o surgimento da sociedade da informação;
• compreender as principais características da sociedade baseada no
paradigma da informação e comunicação.

Para acompanhar esta aula, você deve analisar os impactos provocados pela
utilização das tecnologias tanto nas sociedades industriais, quanto nas desenvol-
vidas sob o paradigma da informação. É preciso entender o modo como o conheci-
mento passa a ser ofertado no decorrer da evolução tecnológica pela qual passou
e, naturalmente, ainda passará. Esta é de fundamental importância para reflexão
sobre a rápida mudança de idéias pela qual a sociedade passa em função do
nível de avanço tecnológico já alcançado. Este conhecimento pode ser adquirido
a partir da leitura da bibliografia básica e complementar desta disciplina.

Nascemos em uma sociedade na qual dispomos de diversos equipamentos,


utensílios e ferramentas cujas utilidades não nos surpreendem, pois crescemos
em meio a elas. O contexto tecnológico relativamente avançado em que vivemos
é resultado de uma série de transformações decorrentes da evolução das tecno-
logias da informação e comunicação.
No capítulo anterior, discutimos o momento histórico em que a sociologia
surgiu como ciência (um momento de profundas transformações econômicas e
sociais decorrentes das revoluções Francesa e Industrial). Nesta aula, discuti-
remos as transformações pelas quais nossa sociedade vem passando desde a
Revolução Industrial.

unitins • análise e desenvolvimento de sistemas • 1º PeRÍodo 205


aula 2 • infoRmática e sociedade

2.1 As cidades e os impactos da Revolução Industrial


Desde os primórdios da Revolução Industrial aos dias atuais, as cidades
foram se tornando verdadeiros centros, laboratórios de criação e desenvolvi-
mento de novas tecnologias. Estas foram fortemente modificadas devido à indus-
trialização da Europa, iniciada na Inglaterra. O aparecimento das grandes
cidades se deveu à fundição, à mineração, ao desenvolvimento tecnológico e a
utilização das fontes de energia.
Existe uma relação entre as cidades e a indústria. Se você mora ou conhece
alguma grande cidade, como São Paulo, Belo Horizonte, etc., poderá cons-
tatar que elas possuem zonas residenciais, zonas comerciais e zonas industriais.
Castells (1983) declara que as indústrias são atraídas pelas cidades devido ao
mercado e à mão-de-obra. Assim, a indústria, ao crescer, gera novas possibi-
lidades de emprego e serviços que apóiam os novos processos de produção
que vão sendo criados. O autor também considera o processo inverso: a indús-
tria vai até os lugares onde se localizam a matéria-prima (campos) e meios de
transporte, os coloniza, transformando em uma região urbanizada. As cidades
industrializadas acabam por se tornar grandes pólos de atração, tornando-se as
causadoras do chamado “êxodo rural”: o homem sai do campo em busca de
melhores oportunidades de vida e de trabalho nas cidades.

Saiba mais

A história registra duas grandes revoluções industriais que impactaram forte-


mente toda a sociedade daquela época e cujos reflexos ainda sentimos hoje.
Nas palavras de Castells (2007a, p. 71)
Foram, de fato, ‘revoluções’ no sentido de que um grande aumento
repentino e inesperado de aplicações tecnológicas transformou os
processos de produção e distribuição, criou uma enxurrada de novos
produtos e mudou de maneira decisiva a localização das riquezas e
do poder no mundo que, de repente, ficaram ao alcance dos países
e elites capazes de comandar o novo sistema tecnológico.

206 1º PeRÍodo • análise e desenvolvimento de sistemas • unitins


aula 2 • infoRmática e sociedade

A Primeira Revolução Industrial ocorrida no período que se estende de 1760


até 1850, “originou-se na Inglaterra apesar de suas raízes intelectuais poderem
ser encontradas por toda a Europa e no espírito renascentista das descobertas”
(CASTELLS, 2007a, p. 72). A Inglaterra foi a pioneira desta Revolução, considerada
assim uma “oficina mundial” de onde saíram avanços nas áreas têxtil e de transporte.
A locomoção foi marcada pela mudança da energia de tração humana/animal, por
energia a vapor, ideal para impulsionar locomotiva e máquinas industriais. Verifique,
assim, que as mudanças na indústria e no transporte são automáticas com o advento
estas tecnologias. Com a máquina a vapor, por exemplo, que gerava, acumulava
e distribuía energia em larga escala, foi possível a potencialização da técnica. Por
meio dela, criaram-se instrumentos mecânicos, que, operando de forma analógica,
substituíram a força de trabalho (mãos, pernas e braços) de muitos artesãos.
“Muita coisa se cria, mas, o que é bom, se copia”. Pois bem, de 1860 até
início do século XX, a Revolução Industrial se espalhou, a partir da Inglaterra,
pelo mundo, especificamente, pela Europa, América e Ásia: França, Rússia,
Bélgica, Estados Unidos da América, Japão, Itália (esta fase é chamada de
Segunda Revolução Industrial). Novas tecnologias foram criadas e desenvolve-
ram-se “novas versões” expandidas de tecnologias já existentes: expansão das
malhas ferroviárias, crescimento da concorrência do mercado, desenvolvimento
das indústrias de bens de produção e utilização de novas fontes de energia
como a hidrelétrica e a de derivados de petróleo.
No fim do século XIX, as cidades européias já haviam se transformado de
forma radical, devido às duas Revoluções Industriais. O Período pós-guerra
contribuiu fortemente para mudanças ainda mais profundas, uma vez que as
tecnologias bélicas foram convertidas em ferramentas de auxílio ao cidadão
comum. Com a liberdade para inventar, a sociedade foi incorporando cada
vez mais e mais variadas tecnologias nas áreas de transporte, saúde, moradia,
economia, educação e comunicação.
Os impactos destas incorporações foram inevitáveis, alguns positivos, outros,
negativos. Do século XIX até o XXI, a humanidade alavancou em uma evolução
tecnológica acelerada jamais vista na história dos séculos passados. Assim, ao
longo do século XX, a sociedade passou por profundas transformações, fruto das
inovações tecnológicas e das mudanças no emprego do trabalho humano, na
divisão do trabalho e na evolução da estrutura ocupacional.
Até aqui discutimos as transformações pelas quais a sociedade ocidental
passou, em decorrência da Revolução Industrial. Por meio delas, fontes móveis
de energia, baratas e acessíveis, expandiram e aumentaram a força do corpo
humano, criando a base para a sociedade que se desenvolverá a partir daí, socie-
dade esta chamada por alguns de pós-Industrial, da Informação ou Sociedade
em Rede. Veremos, no próximo item, as transformações que ocorreram em virtude
do uso de novas tecnologias da informação e da comunicação.

unitins • análise e desenvolvimento de sistemas • 1º PeRÍodo 207


aula 2 • infoRmática e sociedade

2.2 A sociedade da informação


Segundo Castells (2007b), o mundo que ora se configura é o resultado
de três processos independentes: a revolução da tecnologia da informação, a
crise do capitalismo e do estatismo, a conseqüente reestruturação de ambos e
o apogeu de movimentos sociais e culturais como o libertarismo, a luta pelos
direitos humanos, o feminismo e o ambientalismo. Para este autor, a interação
entre esses processos fez surgir uma nova estrutura social dominante, a sociedade
em rede; uma nova economia, a economia informacional/global; e uma nova
cultura, a cultura da virtualidade real. Passaremos agora a discutir as caracterís-
ticas desta nova sociedade.

Saiba mais

Primeiramente, é preciso evidenciar que a revolução da tecnologia da


informação tornou a geração de riqueza, o exercício do poder e a criação de
códigos culturais dependentes da capacidade tecnológica das sociedades e indi-
víduos. Assim, “a tecnologia da informação tornou-se a ferramenta indispensável
para a implantação efetiva dos processos de reestruturação socioeconômica”
(CASTELLS, 2007b, p. 412). Dessa forma, as tecnologias da informação foram
decisivas para o surgimento de um capitalismo globalizado, caracterizado pela
flexibilidade organizacional, pelo enfraquecimento da mão-de-obra sindicali-
zada e pela redução cada vez maior do papel do Estado no atendimento às
questões sociais.
As forças produtivas básicas do capitalismo, tais como o capital, a força
de trabalho e a divisão transnacional do trabalho, multiplicam suas formas de
articulação, na medida em que ultrapassam fronteiras geográficas, históricas e
culturais. Tal divisão envolve a redistribuição de empresas, corporações e conglo-
merados por todo o mundo, em substituição à antiga ordem que primava pela
concentração, em países dominantes, da indústria, centros financeiros, organi-
zações de comércio, agências de publicidade e mídia impressa e eletrônica. As
empresas transnacionais operam em todo o planeta configurando uma situação
de “nação - mundo”, redimensionando suas prioridades - seu desempenho antes
organizado em âmbito nacional, estrutura-se de acordo com a competitividade

208 1º PeRÍodo • análise e desenvolvimento de sistemas • unitins


aula 2 • infoRmática e sociedade

mundial, de modo que as empresas procuram vender em todas as partes do


planeta tornando as especificidades regionais secundárias, fazendo-se simples
adaptações às características locais (CARMO, 1998).
Ligado aos processos apresentados no parágrafo anterior, o fordismo,
padrão de organização do trabalho e da produção dominante na primeira
metade do século XX, passa a combinar-se ou ser substituído pela flexibilização
dos processos de trabalho e produção, o qual se constituiu baseando-se em
parâmetros mais sensíveis às novas exigências do mercado, combinando produ-
tividade, capacidade de inovação e competitividade. A mundialização dos
mercados de produção leva a uma busca da força de trabalho barata em todos
os cantos do mundo, bem como provoca as migrações entre os diversos conti-
nentes. Nas palavras de Hall (2001, p. 81),
o movimento para fora (de mercadorias, de imagens, de estilos
ocidentais e de identidades consumistas) tem correspondência num
enorme movimento de pessoas das periferias para o centro, num
dos períodos mais longos e sustentados de migração ‘não-plane-
jada’ da história recente. Impulsionados pela pobreza, pela seca,
pela fome, pelo subdesenvolvimento econômico e por colheitas
fracassadas, pela guerra civil e pelos distúrbios políticos, pelo
conflito regional pelas mudanças arbitrárias de regimes políticos,
pela dívida externa acumulada de seus governos para com os
bancos ocidentais, as pessoas mais pobres do globo, em grande
número, acabam por acreditar na ‘mensagem’ do consumismo
global e se mudam para os locais de onde vêm os ‘bens’ e onde
as chances de sobrevivência são maiores.

Portanto, o capitalismo se globaliza, provocando ampla transformação na


esfera do trabalho, o que reflete na organização social da vida do indivíduo,
da família, do grupo, das classes e da própria coletividade. A vida social, na
atualidade, é marcada por estilos globais: lugares e imagens se tornam familiares
às pessoas do mundo todo, seja por meio de viagens ou pelos sistemas de comu-
nicação. O mundo foi encolhendo, tornando-se novamente plano: a cada nova
invenção patenteada, a cada nova maneira de se comunicar e difundir o uso de
produtos, maneiras de realizar medidas, cálculos, alimentos, a sociedade urbana
foi convergindo para um conjunto padronizado de elementos tecnológicos. Para
constatar isso, veja que você, no Brasil, poderá viajar pelo mundo inteiro e,
pela internet, conseguirá se comunicar com a maioria de seus conhecidos. Seu
dinheiro poderá ser intercambiado pela moeda do país em que você estiver. Caso
tenha dificuldades de se comunicar em algum centro urbano de determinado país,
poderá contratar um intérprete que o deixará em sintonia com a região em que
você está. Mesmo estando em outro país, com uma cultura diferente, provavel-
mente o chuveiro, o telefone, o computador, o Mc Donald’s são muito parecidos
com os que você tem no Brasil. Os modos de medir os objetos, em centímetros,
metros, quilômetros e em milhas, todas estas maneiras de mensuração conhecidas

unitins • análise e desenvolvimento de sistemas • 1º PeRÍodo 209


aula 2 • infoRmática e sociedade

mundialmente. O modo de se consultar, aprender, morar serão todos semelhantes


aos que você estará acostumado em um grande centro brasileiro.

Figura 1 Os avanços tecnológicos impactam o modo de vida nas cidades.

Este contexto, marcado pelo uso constante, global e praticamente obrigatório


de tecnologias, define que o mundo atual sofreu uma mudança de ordem orga-
nizacional, que marca a presença de um novo paradigma: o paradigma das
tecnologias da informação e da comunicação (TIC). Nas palavras de Freeman
citado por Castells (2007a, p. 107),
Um paradigma econômico e tecnológico é um argumento de
inovações técnicas, organizacionais e administrativas inter-rela-
cionadas cujas vantagens devem ser descobertas não apenas
em uma nova gama de produtos e sistemas, mas também e
sobretudo na dinâmica da estrutura dos custos relativos de
todos os possíveis insumos para a produção. Em cada novo
paradigma, um insumo específico ou conjunto de insumos pode
ser descrito como o ‘fator-chave’ desse paradigma caracteri-
zado pela queda dos custos relativos e pela disponibilidade
universal. A mudança contemporânea de paradigma pode
ser vista como uma transferência de uma tecnologia baseada

210 1º PeRÍodo • análise e desenvolvimento de sistemas • unitins


aula 2 • infoRmática e sociedade

principalmente em insumos baratos de energia para uma outra


que se baseia predominantemente em insumos baratos de infor-
mação derivados do avanço da tecnologia em microeletrônica
e telecomunicações. (grifo do autor)

Quais seriam os aspectos centrais do paradigma da tecnologia da informação?


Castells (2007a) aponta cinco aspectos que caracterizam a nova sociedade.
O primeiro deles é que a informação, neste tipo de sociedade, é a matéria-
prima: neste novo paradigma, as tecnologias são usadas para agir sobre a
informação, e não apenas informações para agir sobre a tecnologia, como
aconteceu nas revoluções anteriores.
O segundo aspecto se refere à penetrabilidade dos efeitos das novas tecno-
logias. Para este autor, como a informação é parte integral de toda atividade
humana, todos os processos de nossa existência individual e coletiva são direta-
mente moldados pelo novo meio tecnológico.
A terceira característica diz respeito à lógica de redes em qualquer sistema
ou conjunto de relações, usando novas tecnologias da informação. A formação
em rede parece estar bem adaptada à crescente complexidade e interação, e os
modelos do desenvolvimento derivado do poder criativo dessa interação.
Em quarto lugar, destaca-se a flexibilização. O novo paradigma tecnológico
destaca-se pela sua capacidade de reconfiguração, um aspecto decisivo em uma
sociedade caracterizada por constantes mudanças e fluidez nas organizações.
A quinta característica dessa revolução tecnológica é a convergência de
tecnologias específicas para um sistema extremamente integrado, no qual é
impossível distinguir trajetórias tecnológicas antigas. Assim, “a microeletrônica,
as telecomunicações, a optoeletrônica e os computadores são todos integrados
nos sistemas de informação”, (CASTELLS, 2007a, p. 109).

Saiba mais

Entendemos, assim, que invenções e inovações tecnológicas alteram conside-


ravelmente o comportamento de pessoas e coletividades inteiras, pois possibilitam
maneiras mais rápidas, padronizadas e facilitadas de realização de inúmeras
atividades. A sociedade corre para um estado onde as próprias coletividades
possuem extensões tecnológicas que são encaradas como aspectos naturais do
cotidiano dos cidadãos, especialmente, habitantes de grandes metrópoles.

unitins • análise e desenvolvimento de sistemas • 1º PeRÍodo 211


aula 2 • infoRmática e sociedade

Nesta aula, vimos, por meio de teorias e exemplificações práticas, como


as duas Revoluções Industriais impactaram a vida dos cidadãos e como tais
mudanças propiciaram o surgimento de novo paradigma de sociedade, a socie-
dade da informação. Verificamos o quanto as mudanças no modo de produção,
de geração de energia e novos inventos alteraram o comportamento dos cida-
dãos e as estruturas das cidades.

1. Nos dias atuais, estamos rodeados de pequenos detalhes tecnológicos que nos
configuram participantes de uma sociedade alterada pela tecnologia. Cite,
explicando, alguns destes detalhes alteradores de nosso cenário social.

2. “Destruam os campos, e as cidades não subsistirão”. Você já pensou sobre


o fato de que, provavelmente, você não conseguiria sobreviver fora de uma
cidade? Explique, dentro deste contexto, sobre o termo “sociedade urbana”.

3. A Revolução Industrial marcou a vida das sociedades ao longo de muitas


gerações. Sobre a Revolução Industrial, assinale a alternativa correta.
a) A Revolução Industrial iniciou-se no vale do silício, nos Estados Unidos,
com a produção de computadores em larga escala.
b) A Revolução Industrial iniciou-se, primeiramente na Inglaterra, com a
descoberta da eletricidade e seu uso na movimentação de máquinas, inclu-
sive, possibilitando o funcionamento dos computadores da atualidade.
c) A Revolução Industrial é marcada pelo abandono das técnicas de coleta e
caça, e sua substituição pela criação de animais e pela agricultura, maneiras
para quais se inventaram diversas inovações para aumento da produção.
d) A Primeira Revolução Industrial ocorreu entre 1700 e 1900, impactando
primeiramente os ingleses com a energia a vapor, o uso do ferro, etc. Já a
Segunda Revolução atingiu diversos países da Europa entre 1850 e 1900.

4. A sociedade baseada no paradigma da informação e da comunicação, de


acordo com Castells (2007a), possui cinco aspectos principais que a caracte-
rizam. Analise as afirmações sobre essas características:
I. A informação é a matéria-prima dessa sociedade.
II. O novo meio tecnológico torna imutável o modo de vida do cidadão.
III. A lógica de redes refere-se às múltiplas relações e inter-relações que
usam a tecnologia da informação.

212 1º PeRÍodo • análise e desenvolvimento de sistemas • unitins


aula 2 • infoRmática e sociedade

IV. A flexibilização, que faz com que tecnologias antigas sigam a tendência
de se fundirem à tecnologia da informação.
V. A convergência de tecnologias denota a grande capacidade de configu-
ração e reconfiguração inerente a essa sociedade.

Assinale a alternativa correta:


a) somente as alternativas III e IV estão corretas;
b) somente as alternativas I, II e III estão corretas;
c) somente as alternativas I e III estão corretas;
d) somente as alternativas III, IV e V estão corretas.

Os objetivos desta aula são: identificar as transformações ocorridas na


sociedade desde a Revolução Industrial até o surgimento da sociedade da infor-
mação, e identificar as principais características da sociedade baseada no para-
digma da informação e comunicação. Vamos ver se você os atingiu?
Na atividade um, impelimos você a olhar ao seu redor e verificar os impactos
que as tecnologias causaram na sociedade em que você vive. Você deve ter
citado vários pequenos detalhes e descrito como ele revolucionou o modo de o
homem se comportar. Ao olhar um forno microondas, por exemplo, você poderia
ter citado a descoberta da eletricidade, a descoberta dos raios microondas, a
utilização de um processador dentro do forno, e concluído que, se não fosse a
Revolução Industrial, talvez você ainda não estivesse em condições de preparar
pipoca em menos de 5 minutos.
Na atividade dois, você deve ter feito um texto sobre os fatores de atração
da cidade e centros urbanos, listando as facilidades e avanços de elementos que
proporcionam maior qualidade de vida, relatando que sociedade urbana é aquela
que nasce a partir da industrialização, absorvendo a produção dos campos, sem
esquecer-se dos efeitos colaterais, como o inchaço urbano devido ao êxodo rural.
Na atividade três, a resposta correta é a letra (d), conforme os assuntos expla-
nados em aula. A alternativa (a) é incorreta, pois “vale do silício” é um termo
moderno distante da época em que ocorreu a Primeira Revolução Industrial. A
alternativa (b) é incorreta, pois a eletricidade foi descoberta a partir da segunda
revolução industrial, quando ela já havia se espalhado por outros países além da
Inglaterra. A alternativa (c) é incorreta, pois a troca da coleta pela agricultura, da
caça pela criação de animais, etc., são marcos da sociedade do período denomi-
nado pré-histórico, não podendo ser definido como Revolução Industrial.
Por fim, na atividade quatro, a resposta correta é a letra (c), conforme as
características citadas por Castells (2007), somente as afirmações I e III estão

unitins • análise e desenvolvimento de sistemas • 1º PeRÍodo 213


aula 2 • infoRmática e sociedade

corretas. A afirmativa II está errada, pois o novo meio tecnológico molda prati-
camente todos os processos da vida dos cidadãos. Também as afirmativas IV e
V estão incorretas, pois a definição da alternativa (IV) explica, na realidade, a
convergência enqua nto a definição da alternativa (V) explica a flexibilização.
Se você conseguiu responder corretamente as atividades, então os nossos
objetivos nesta aula foram atingidos.

CARMO, Paulo Sérgio do. O trabalho na economia global. São Paulo: Moderna,
1998.
CASTELLS, M. A questão urbana. Rio de Janeiro: Paz e Terra, 1983.
______. Fim de milênio: a era da informação – economia, sociedade e cultura.
4. ed. São Paulo: Paz e Terra, 2007a. v. 3.
______. A sociedade em rede – a era da informação: economia, sociedade e
cultura. 10. ed. São Paulo: Paz e Terra, 2007b. v.1.
GREENSTEIN, M.; FEINNAN, T. Electronic commerce: security, risk management
and control. Boston: McGraw-Hill, 2000.
HALL, Stuart. A identidade cultural na pós-modernidade. 6. ed. Rio de Janeiro:
DP&A, 2001.
Revolução Industrial. Disponível em: <http://www.algosobre.com.br/historia/
revolucao-industrial.html>. Acesso em 03 ago. 2008.

Na próxima aula, iremos olhar para a própria sociedade em que vivemos,


reparando nos aspectos que a informatização contribuiu para que atingíssemos
um patamar onde a tecnologia influência vários setores. Iremos caminhar no
sentido de encontrar exemplos de modificações ocorridas em nosso cotidiano,
em função das tecnologias da informação e da comunicação.

Anotações

214 1º PeRÍodo • análise e desenvolvimento de sistemas • unitins


aula 3 • infoRmática e sociedade

Aula 3
Situação atual da informatização da
sociedade nos seus vários setores

Esperamos que, ao final desta aula, você seja capaz de:


• identificar os impactos causados pela informatização nos diversos
setores da sociedade atual;
• identificar as alterações ocorridas no dia-a-dia dos cidadãos devido à
influência das TIC.

Para acompanhar esta aula, você precisa saber o conteúdo das aulas
passadas, que apresentaram uma visão histórica dos impactos da informática
sobre a sociedade. Além disso, é importante que você analise a sociedade atual
para identificar como as tecnologias da informação e comunicação têm impac-
tado a vida das pessoas.

Na atualidade, as empresas estão altamente interconectadas e dependentes


da informatização, robotização e automação, graças aos avanços da tecno-
logia da informação (TI). Esses avanços impulsionaram tais organizações a se
reorganizarem em torno de modelos muito mais dinâmicos de interação com
o cliente, com outras empresas, com o governo local e até mesmo mundial.
Você pode observar que o próprio jargão de profissionais da informática, do
governo, de ciência e da educação, formado por palavras tais como telemedi-
cina, teletrabalho, vídeo conferência, organização virtual, automação, roboti-
zação, processamento, etc., tem sido utilizado por cidadãos de diversas áreas de
atuação,totalmente influenciados pela nova ótica da tecnologia da informação.
Nesta aula, identificaremos como se encontra o processo de informatização da
sociedade em seus mais diversos setores.

unitins • análise e desenvolvimento de sistemas • 1º PeRÍodo 215


aula 3 • infoRmática e sociedade

3.1 A sociedade atual e as tecnologias da informação


A sociedade, hoje, é um reflexo da gama de tecnologias que utiliza. Assim,
a tomada de decisões estratégicas por empresas e demais organizações é efeti-
vamente realizada com ajuda direta de tecnologias da informação, baseadas
em diversas inovações tecnologias, dentre elas, principalmente, a internet. As
empresas ou organizações que agem como fatores de disrupção que são carac-
terizadas por verdadeiras expressões de criatividade, poderão e deverão fazer
uso das muitas facilidades oferecidas pela tecnologia da informação.
Fato curioso ocorre quando um indivíduo é pressionado a se inserir no meio
digital (abandonando o analfabetismo digital): ele passa a pressionar todos
os participantes de sua vida (seus processos de atuação) para que igualmente
se nivelem no conhecimento digital. Em médio e longo prazo, uma reação em
cadeia ocorre, proporcionando uma pressão da própria sociedade que contém
o indivíduo a se incluir no meio digital. Assim, a quitanda do seu João passa a
ser desafiada a virar um mercado de legumes e frutas locais, regionais e nacio-
nais. A escola de datilografia do José precisará urgentemente se transformar em
um curso de informática, contendo a disciplina digitação dentro de sua grade.
Assim, com o paradigma da tecnologia da informação, reorganizam-se
culturas, hábitos financeiros, formas de lazer, educação e vários outros aspectos.

3.2 Impactos no dia-a-dia do cidadão


O cidadão da sociedade da informação possui seu cotidiano altamente
influenciado pelas tecnologias da informação. A todo instante, desde o acordar
até o dormir, a tecnologia da informação estará participando de sua vida.
Imagine que você é um grande conferencista: para acordar, você poderá
precisar de um despertador eletrônico ajustado no horário de Brasília, e você
não poderá perder o vôo. Enquanto voa até tal cidade, você ouve música sinto-
nizada na rádio de música clássica da companhia aérea, enquanto termina os
detalhes de sua apresentação, no laptop, utilizando-se do “Microsoft Powerpoint”
ou “BrOffice Apresentação”. Ao chegar lá, você aluga um carro com um nave-
gador GPS que o orienta onde fica o hotel no qual você se hospedará, e o
salão de conferências onde apresentará sua palestra. Você consulta pela internet
qual o restaurante mais barato, porém com ótimas referências, da região onde
está hospedado, para o seu almoço. Após o almoço, telefona ou envia um
e-mail para sua mãe ou esposa para dar notícias de “como andam as coisas
por aqui”. Após a palestra, você divulga seu e-mail para os participantes que,
mesmo cada um deles morando em diferentes localidades, poderão continuar
mantendo contato com você. Antes de voltar para sua cidade, no outro dia pela
manhã, você ajusta seu despertador digital novamente e já verifica a previsão
do tempo do dia seguinte, pela internet, para saber que roupa irá usar ou se
precisará de um guarda chuva. Boa noite!

216 1º PeRÍodo • análise e desenvolvimento de sistemas • unitins


aula 3 • infoRmática e sociedade

Agora, tente comparar este estilo de vida com um estilo à moda antiga: o
cidadão acorda com o canto do galo, levanta cedo, pois a viagem será a pé
e será longa: a vila aonde ele irá trabalhar fica à 10km de onde mora, (2h de
caminhada), não poderá levar muito peso além dos 10Kg de produtos que levará
para o outro vilarejo. Ele se despede dos seus e vai ao trabalho. Ao chegar lá,
trabalha em contato direto com seus clientes, compradores de seus produtos.
Logo ele terá que voltar e o trabalho é bastante “corrido”, pos isso, não pode
anotar o nome dos clientes, apenas lembrar-se daqueles com quem tem mais
contato e talvez com quem almoce ao meio dia, e será muito difícil se encon-
trarem em outro lugar a não ser onde ele está agora. No fim da tarde é hora de
voltar: após duas horas de caminhada (que bom que não choveu!) seguidas de
um jantar e uma conversa com a família, a cama lhe espera. Boa noite.
Veja que, curiosamente e incrivelmente, o cidadão do primeiro caso pode
ser considerado um super-herói, se comparado com o cidadão do segundo
caso: possui supervelocidade para viajar grandes distâncias, superaudição e
supervoz para se comunicar com pessoas a centenas e milhares de quilômetros
de distância, supermemória para se lembrar de muitas informações de prati-
camente todos os seus contatos, superpercepção para prever o tempo e assim
se prevenir das intempéries naturais. Como todo bom super herói, o cidadão
impactado pelas tecnologias da informação já não percebe que todas estas
inovações lhe conferem estes “super poderes”: convive com elas como se fossem
extensões de seu corpo.
Possuir “super poderes” pode ter suas desvantagens. Explico: poder viajar
pelo mundo sem sair de casa a partir da internet tem causado o aumento do
individualismo e uma introspecção do cidadão, de forma a não se sociabi-
lizar com os entes mais próximos. Isso significa que um adolescente poderá
ter centenas de contatos espalhados pelo mundo, porém nunca ter um contato
físico com estes e, ao mesmo tempo, nunca ter contato físico com seus vizinhos
e outros cidadãos próximos, ou seja, aqueles que fisicamente estariam dispo-
níveis para um contato não virtual. Os cidadãos “super-heróis” de hoje (todos
aqueles que são impactados pela tecnologia da informação) tem um dia-a-dia
repleto de compromissos e tarefas profissionais que duram o dia todo, tais
quais aquelas citadas no exemplo do palestrante, dado anteriormente. Logo,
o contato físico e casual é minimizado. Por causa de nossas muitas atividades,
acabamos por não conhecer nossos vizinhos, principalmente se morarmos em
grandes centros urbanos, onde todos acordam muito cedo para ir ao trabalho
e retornam muito tarde, já na hora de dormir. Pessoas de uma mesma rua,
ou até mesmo um mesmo prédio, têm dificuldades de se conhecer e talvez
nunca o façam. Os estabelecimentos comerciais já estão centrados em atendi-
mento rápido e eficaz. Acabamos por não encontrarmos, nos grandes centros,
aquele famoso “Manoel da padaria” que sempre bate um bom papo com os
fregueses. Uma vez que “tempo é dinheiro” e a quantidade de clientes em

unitins • análise e desenvolvimento de sistemas • 1º PeRÍodo 217


aula 3 • infoRmática e sociedade

fast foods, hipermercados e grandes feiras é muito grande, o tempo para


conversas formais cara-a-cara com o freguês (um modo antigo de relaciona-
mento com o cliente) acaba inviabilizado (Você já imaginou como você se
sentiria se o operador de caixa do Mc Donald’s ficasse conversando sobre
últimos os acontecimentos da cidade, sobre determinado candidato a prefeito,
ou sobre o último capítulo da novela, com um cliente que estivesse na sua
frente na fila?).
Jane Jacobs (2002) assegura que nos anos 1960 a vida da cidade estava
definida pela “calçada” (elemento físico próximo), tendo como exemplo a
próxima cidade onde vivera, Greenwich Village, na rua Hudson Street. Janes
declara que no bairro onde morava havia mais vida, todos se conheciam. As
crianças tinham contatos com os lojistas, é o caso do dono da loja de doces, Sr.
Bernie, fazia favores aos clientes e pessoas próximas, por exemplo, ajudando
as crianças a atravessar a rua, emprestando o guarda-chuva para os clientes ou
ainda guardando embrulhos para as pessoas da vizinhança. A Autoria relata
os embrulhos encomendados sendo encaminhados de um lado para o outro do
bairro (“ballet urbano”): da farmácia para quitanda, da quitanda para a ferraria
e assim por diante. Dessa forma, a vida local daquele bairro é voltada para a
rua, que serve como o backbone de informações que trafegam e transmitem
vida através das calçadas deste ambiente, que possibilitam a socialização de
todos: brincadeiras das crianças e comércio e bate-papo dos adultos. Assim, as
calçadas possibilitam a interação física entre as pessoas, criando relações de
uma forma única.
As TIC – Tecnologias da Informação e Comunicação, entre elas, a Internet,
estabelecem novas formas de relacionamento virtuais. A partir do momento em
que os sistemas conectados permitem a sociabilização em rede, através de apli-
cativos de comunicação tais como: redes sociais, e-mails, salas de bate papo,
leilões eletrônicos, etc., em todo o mundo, pessoas irão, naturalmente, pela curio-
sidade que lhes é inerente, explorar estes novos meios de contato, cadastrando-se
em tais sites, publicando mensagens e informações sobre sua pessoa, a fim de
ampliar o seu networking sócio-virtual. Pesquisas mostram que a Internet está
sendo utilizada de forma instrumental e com objetivos estreitamente ligados ao
trabalho, à família e à vida cotidiana (CASTELLS, 2002). Todas as ferramentas
citadas causam um efeito de eliminação da unidade de lugar. Com o Orkut
(aplicativo web de relacionamentos via redes sociais), você pode comunicar-se
com amigos de infância, ex-professores, parentes e demais pessoas espalhadas
por todo o mundo. Com o E-mail, é possível enviar, por exemplo, um relatório de
trabalho feito nos Estados Unidos para o chefe que está no Japão. Com o Msn,
Skype ou Google Talk (Programas de chat, conversas textuais ou mesmo áudio
visuais, a partir de microfone, caixas de som e webcam) você poderá conversar
com sua mãe, pai, avô, etc., estando em qualquer lugar do mundo, como se
estivessem ao seu lado.

218 1º PeRÍodo • análise e desenvolvimento de sistemas • unitins


aula 3 • infoRmática e sociedade

Drucker (2000) afirma que a Internet acabou com a distância, ao menos na


cabeça, na mente das pessoas. De fato: quando nos comunicamos via TIC com
alguém, não-raro esquecemos que ele está, muitas vezes, a milhares de quilôme-
tros de nós.

Saiba mais

3.3 Informatização das formas de lazer

Figura 2 Vamos Jogar Golfe hoje?

Fonte: internet, jogo de golfe virtual.

Vamos jogar golfe hoje? E futebol? Quem sabe brincar de detetive? Ou


banco imobiliário? Se alguém convidasse você para praticar algumas dessas
atividades de lazer, o que você faria? Iria se arrumar para a atividade ao ar
livre ou iria direto para o computador se conectar à sala virtual onde as demais
pessoas estariam te esperando para iniciar a partida? Estar em dúvida quanto à
resposta que você daria é um bom sinal para indicar que sua vida já não é mais
a mesma de antigamente.

unitins • análise e desenvolvimento de sistemas • 1º PeRÍodo 219


aula 3 • infoRmática e sociedade

Diferentemente de atividades ao ar livre, saudáveis em muitos aspectos, a


diversão informatizada é tão envolvente quanto aquelas, dependendo de quem
a pratica, podendo servir como fator complementar às atividades ao ar livre
(ou talvez as substituindo, a exemplo de muitas crianças e adolescentes que
optaram pelo vídeo games definitivamente, causando preocupação a pais,
médicos e educadores).Hoje, notamos a explosão de um novo mercado: novos
vídeos games são lançados, alguns, como o Nintendo Wii, imitam objetos físicos
como raquetes de tênis, tacos de golfe ou baseball, dentre outros (ao menos
este exige algum exercício físico dos praticantes. Inclusive, já se tem notícia de
adolescentes que sofreram distensões musculares por causa do uso frenético do
vídeo game, provavelmente por não estarem acostumados a atividades físicas,
devido à passividade que os outros vídeo games proporcionam, além de não
realizarem alongamentos ou pausas entre as atividades de lazer virtual).
A internet é usada como um grande canal de entretenimento. A grande
rede proporciona aos jogos de computador e mesmo de vídeo games (que,
em seu interior, já são grandes computadores, com disco rígido, adaptador de
áudio, modem e adaptador gráfico com aceleração de vídeo) grupos de rela-
cionamento (orkut), filmes, vídeos (Youtube) e até jogos online do tipo massive
multiplayer. Nesses jogos, milhares de pessoas assumem identidades diferentes
e encaram jornadas intermináveis a partir da rede.
Com o aumento da largura de banda, a fibra ótica, a internet a rádio,
a internet pode transmitir megabytes de informações, sons, vídeos, imagens,
em tempo totalmente aceitável para o uso em jogos online. Estas façanhas
eram impossíveis de serem executadas há poucos anos atrás. As empresas de
desenvolvimento de jogos para celular ou para computador estão em alto cres-
cimento. O Brasil já possui faculdades com cursos de especialização em desen-
volvimento e jogos, mas ainda é um pequeno passo dentro deste grande mundo
do entretenimento virtual. Eis ai um ótimo nicho de mercado para aqueles que
sonham em desenvolver um jogo para computador. É possível criar jogos com
relativa facilidade e que atraiam grandes públicos, sem precisar saber profun-
damente como produzir vídeos ou áudio de forma avançada: muitos jogos
são simples e garantem a diversão de muitos usuários como, por exemplo,
gerenciadores de times de futebol online, possuindo mais de 20.000 usuá-
rios, que é o caso do Yahoo Soccer Manager disponível no sítio: <http://
uk.soccermanager.yahoo.net/yfbm/>.

3.4 Ampliações nos setor educacional


As tecnologias da informação e da comunicação causaram grande impacto
no modo com as pessoas tem acesso ao aprendizado. Desde os tempos mais
remotos, a sala de aula possuiu um formato padrão: de um lado, o professor
(emissor), mestre ou tutor, explanando os conteúdos, teorias, filosofias para, do

220 1º PeRÍodo • análise e desenvolvimento de sistemas • unitins


aula 3 • infoRmática e sociedade

outro lado, os alunos, pupilos ou discípulos (receptores). A educação ocorre no


processo interativo entre emissor e receptor. O advento das TIC não modificou,
necessariamente, esse formato, mas alterou profundamente a maneira como a
educação ocorre, sugerindo um novo modelo educacional multidisciplinar, rico
em interatividade e maneiras de acesso e prática de conteúdos.
A internet, ou a comunicação via satélite, cabo ou rádio, possibilita a
expansão da transmissão do conhecimento, permitindo que o emissor fique
centralizado em um pólo de transmissão, no caso do novo modelo de educação
chamado telepresencial (este, sendo aprovado por você, caro aluno!), enquanto
os receptores podem ficar em salas de aulas espalhadas por todo o mundo.
Acerca das novas maneiras de fazer a educação acontecer, notamos que
Takahashi e outros, citados por Ministério da Ciência e Tecnologia (2000,
p. 71), afirmam que “a educação é o elemento-chave na construção de uma
sociedade baseada na informação, no conhecimento e no aprendizado”. Além
disso, explica:
educar em uma sociedade da informação significa muito mais que
treinar as pessoas para o uso das tecnologias de informação e
comunicação: trata-se de investir na criação de competências sufi-
cientemente amplas que lhes permitam ter uma atuação efetiva na
produção de bens e serviços, tomar decisões fundamentadas no
conhecimento, operar com fluência os novos meios e ferramentas em
seu trabalho, bem como aplicar criativamente as novas mídias, seja
em usos simples e rotineiros, seja em aplicações mais sofisticadas.

Hazan (2001) concorda com os autores citados pelo Ministério da


Tecnologia, afirmando que diferentes formas de capacitação devem incrementar
a educação, o que culmina na base para a inclusão-digital. Isso significa que
ensinar informática (tecnologias da informação) para crianças, jovens, adultos
e idosos é fundamental parar sociabilização dos mesmos dentro do novo para-
digma (democratização da informação). Ela afirma:
na verdade, vivemos num mundo dividido, onde o acesso às
Novas TIC no espaço virtual determina as novas formas de
inclusão e exclusão no mundo contemporâneo. Em termos mate-
riais, é preciso dispor de um equipamento informatizado e de
uma linha telefônica, fixa ou móvel no futuro. Em termos culturais,
o indivíduo precisa ainda dominar a tecnologia, isto é, ter conhe-
cimento e capacidade de apropriação dela.

As crianças, em especial, por serem mais jovens, devem ser orientadas sobre
como as tecnologias poderão servir de base para o aprendizado e, da mesma
forma, educar, alertando-as para os perigos do mau uso da internet e outras
formas nocivas de uso das tecnologias. Assim, é possível afirmar, também, que o
governo que pretender democratizar a informação precisará planejar maneiras
de alcançar toda a extensão de sua jurisdição, usando para isso várias mídias,
se necessário, a fim de alcançar o maior número possível de cidadãos.

unitins • análise e desenvolvimento de sistemas • 1º PeRÍodo 221


aula 3 • infoRmática e sociedade

3.5 Informatização de serviços e trabalho


Imagine quando seu pai, sua mãe, ou até você mesmo, trabalhou em um
mundo onde a tecnologia abrangia o papel, a máquina de datilografar, o
carimbo, a caneta tinteiro, o telegrama e outros avanços desta época. Imagine
também que, neste período, escritórios bem munidos de gavetas de aço operadas
por arquivistas profissionais e máquinas elétricas atualizadas eram considerados
os escritórios “top de linha” da época. Estes avanços citados, hoje, podem ser
chamados de precários (talvez com exceção do papel, que se mantém firme,
sendo amplamente utilizado desde a sua criação): se uma empresa pretende
manter ou aumentar sua competitividade, deverá aposentar alguns métodos, se
esforçando para vencer a nostalgia dos mais antigos utensílios.
A informatização de processos de trabalho e serviços vem sendo uma reali-
dade cada vez mais presente, conforme se multiplicam os avanços tecnológicos,
a sociabilização e a inclusão digital no contexto de vida contemporâneo.
O serviço informatizado atrelado aos avanços da tecnologia de comuni-
cação, a internet, permite cada vez mais a planificação do mundo. Isso significa
que um funcionário a 3.000km de você poderá lhe prestar serviços com a quali-
dade igual ou superior aos daquele conhecido funcionário, a 3m de distância
de você. De acordo com as constatações de Friedman (2007, p. 45), a empresa
B2K (Brickwork) fornece secretários indianos para executivos globais muito
atarefados. Considerando que você seja um executivo de uma grande empresa
e te requisitaram que apresentes uma palestra em PowerPoint para os demais
funcionários dentro de dois dias. Assim, o seu “secretário executivo remoto” na
Índia, contratado pela B2K, irá realizar toda a pesquisa que você precisar, bem
como criar a apresentação (PowerPoint), enviando tudo por e-mail para você. O
fuso horário não é problema, na verdade é solução: enquanto você, latino ou
norte americano, dorme durante a noite da América, o indiano está muito bem
acordado durante o dia da Índia. Ele terminaria o trabalho durante a noite dele,
ou seja, o trabalho ficará pronto pela manhã, para você.
Essa interdependência de unidade de lugar, inerentemente associada aos
novos meios de telecomunicações, ao PC (personal computer), permite algo que
muitos achariam inviável e até mesmo ilógico: o trabalho em casa (teletrabalho).
O teletrabalho é uma característica da virtualização organizacional. De acordo
com Steil; Barcia (1999), ele inclui conhecimentos elementares de trabalho alter-
nado, independente, telecooperativo e móvel: ocorre quando os computadores
e as tecnologias da informação e comunicação são utilizados para a realização
do trabalho longe da sede da empresa, alterando, assim, a noção de espaço
de uma organização. O dia-a-dia do cidadão transforma-se devido à prática do
teletrabalho, bem como à própria utilização do espaço. Para Negroponte (1995,
p.126), “na era da informação você pode trabalhar e morar num único local ou
em lugares diferentes, o conceito de ‘endereço’ adquire um novo significado”.

222 1º PeRÍodo • análise e desenvolvimento de sistemas • unitins


aula 3 • infoRmática e sociedade

Um recado aos pretensos desenvolvedores de sistemas: muitos aplicativos


poderão ser desenvolvidos a partir de qualquer lugar. Com um aparelho celular
operante, um laptop equipado com ferramentas de desenvolvimento (exemplo:
NetBeans, Mysql e JEE5) e um cartão de acesso a internet móvel, qualquer
praia do litoral nordestino torna-se um potencial escritório de trabalho!

Estudamos sobre a sociedade atual frente às tecnologias da informação que


envolvem e o processo de pressionamento dos cidadãos no sentido de se contex-
tualizarem-se digitalmente. O cotidiano dos cidadãos foi alterado grandemente,
principalmente nos grandes centros, pelas tecnologias, em especial, da comuni-
cação e da informação, que estão presentes em praticamente todos os momentos
de suas vidas. Seja no lazer, com os videogames e jogos on-line, nos estudos, com
a teleeducação, enciclopédias e sítios com apostilas, artigos e outras infinidades
de conteúdos on-line, ou no trabalho, com o teletrabalho e a terceirização em
massa de serviços repetitivos, como de exemplo do relacionamento profissional
entre Estados Unidos e Índia, as tecnologias da informação e da comunicação
alteraram o comportamento e o modo de ver o mundo de inúmeros cidadãos.

1. Observe ao seu “macro redor” e pense sobre as áreas da sociedade que


sofreram impactos da informatização e, por isso, já não são as mesmas de
antigamente. Faça um breve comentário de, no máximo, 10 linhas sobre a
as áreas da economia, da educação e da saúde.

2. Analisando a influência da internet e avanços computacionais sobre os


setores de entretenimento e de trabalho e serviços, constatamos grandes
alterações nas formas de se trabalhar e se divertir. Sobre estes alterações,
analise as afirmações a seguir:
I. A internet é usada como um grande canal de entretenimento. A grande
rede proporciona aos jogos de computador e mesmo de vídeo games,
jogabilidade tal que permite interatividade entre milhares de pessoas
espalhadas por todo o mundo.
II. A educação, apesar de ser extremamente importante para formação
do conhecimento, não é fundamental na construção de uma sociedade
baseada na informação, no conhecimento e no aprendizado, mas, sim,
os novos inventos emergentes quase que diariamente.
III. A modalidade de trabalho conhecida como “Home Office”, ou seja,
o trabalho em casa, já começa a se tornar uma grande realidade em

unitins • análise e desenvolvimento de sistemas • 1º PeRÍodo 223


aula 3 • infoRmática e sociedade

muitos lugares do globo. Tal modalidade é possível devido à interdepen-


dência de unidade de lugar, inerentemente associada aos novos meios
de telecomunicações e ao computador pessoal.

Assinale a alternativa correta:


a) as afirmativas I, II e III e estão corretas;
b) somente as afirmativas I e II estão corretas;
c) somente as afirmativas I e III estão corretas;
d) somente a afirmativa I está correta.

3. Escreva um texto com, no máximo, 15 linhas, expondo as vantagens que, a


seu ver, as tecnologias da informação e da comunicação trouxeram ao dia-
a-dia do cidadão.

4. Sobre as alterações ocorridas no cotidiano das pessoas que habitam grandes


centros urbanos, impactados pelas tecnologias da informação e da comuni-
cação, analise as informações a seguir.
I. Com o paradigma da tecnologia da informação, reorganizam-se culturas,
hábitos financeiros, de consumo de lazer, relacionais e de saúde em
torno das TIC – Tecnologias da Informação e Comunicação.
II. A internet acaba por contribuir para o aumento do individualismo e uma
atitude de observação dos próprios pensamentos e atitudes por parte do
cidadão, de forma a contribuir com a não sociabilização com aqueles
que, fisicamente, estão mais próximos.
III. Geralmente, nos grandes centros urbanos, os estabelecimentos comer-
ciais estão centrados em atendimento rápido e eficaz, geralmente não
sobrando tempo para “bate-papos” de balcão.
IV. Com os programas de comunicação via internet, como vídeo conferência
bate papo e outros, o cidadão poderá comunicar-se com diversas pessoas
que estejam em qualquer lugar do mundo, como se estivessem ao seu lado.

Assinale a alternativa correta.


a) somente as afirmativas I, II e III estão corretas;
b) somente as afirmativas I e III estão corretas;
c) somente as afirmativas I, III e IV estão corretas;
d) todas as afirmações estão corretas.

Os objetivos desta aula são: descrever os diversos setores da sociedade, na


ótica dos impactos causados pela informatização (atividades um e dois) e identi-

224 1º PeRÍodo • análise e desenvolvimento de sistemas • unitins


aula 3 • infoRmática e sociedade

ficar as alterações ocorridas no dia-a-dia dos cidadãos, devido à influência das


TIC (atividades três e quatro). Vamos ver se você os atingiu?
Na atividade um, você deve ter abordado as áreas da economia, educação
e saúde, com o olhar centrado no impacto que a informatização trouxe a estes
setores. Poderá ter citado os bancos on-line, possibilitando operações financeiras
em alta velocidade e simplicidade, a teleeducação ou educação a distância, que
inclusive, é a modalidade de ensino que você escolheu para o seu aprendizado,
a telemedicina provendo operações e cirurgias a distância, a tomografia compu-
tadorizada, enfim, diversas áreas que você observa, a partir dos noticiários,
livros científicos e constatações pela observação, ou mesmo visita a museus, parti-
cipação em congressos e acesso a documentários sobre o estado da tecnologia.
Na atividade dois, a resposta correta é a letra (c), ou seja, as alternativas I e
III estão corretas, estando de acordo com o conteúdo apresentado nesta aula. A
afirmativa II erra, ao desconsiderar a educação como fundamental na construção
de uma sociedade baseada na informação, no conhecimento e no aprendizado.
Os grandes inventos são importantes, mas, sem a educação, não seria possível
a sua utilização ou mesmo a sua própria concepção e construção.
Para a atividade três, você poderá ter explanado sobre diversas vanta-
gens que a tecnologia da informação e da comunicação trouxe para os cida-
dãos, melhorando sua qualidade de vida tais como transações comerciais mais
rápidas, compras online, conversas, por meio da internet, com parentes e amigos
fisicamente distantes e a um custo praticamente nulo, se comparado ao telefone,
dentre outras melhorias.
Por fim, na atividade quatro, a resposta correta é a letra (d), ou seja, todas
as alternativas (I, II, III e IV) estão corretas, estando de acordo com o conteúdo
apresentado nesta aula.

CASTELLS, Manuel. A sociedade em rede – a era da informação: economia,


sociedade e cultura. São Paulo: Paz e Terra, 2002. v. 1.
DRUCKER, P. O futuro já chegou. Exame, 2000.
FRIEDMAN, T. L. O mundo é plano. Objetiva, 2007.
HAZAN, V. M. Os reflexos do mundo virtual na cidade real. Rio de Janeiro.
2001. Disponível em: <http://www.territorios.org/teoria/hazan.pdf>. Acesso
em: 25 ago. 2008.
JACOBS, Jane. The death and life of great american cities. New York: Random
House, 2002.
JANUÁRIO, LARISSA. Orkut tem cerca de 15 milhões de usuários brasileiros, diz
procurador do MPF. Disponível em: <http://wnews.uol.com.br/site/noticias/
materia.php?id_secao=4&id_conteudo=7706>. Acesso em: 25 ago. 2008>.

unitins • análise e desenvolvimento de sistemas • 1º PeRÍodo 225


aula 3 • infoRmática e sociedade

BRASIL. Ministério da Ciência e Tecnologia. Sociedade da informação no Brasil


– Livro Verde. Brasília, 2000.
NEGROPONTE, Nicholas. A vida digital. São Paulo: Companhia das Letras,
1995.
STEIL, Andrea; BARCIA, Ricardo M. Aspectos estruturais das organizações
virtuais. Artigo submetido ao ENAMPAD99, Foz do Iguaçu, 19 a 22 de setembro
de 1999.

Será que a grande utilização das tecnologias da informação e comunicação


modificam a cultura dessa sociedade? Existe uma cibercultura? Na próxima aula,
procuraremos responder a essas e outras indagações. Pense sobre isto!

Anotações

226 1º PeRÍodo • análise e desenvolvimento de sistemas • unitins


aula 4 • infoRmática e sociedade

Aula 4
Cibercultura: a interconexão

Esperamos que, ao final desta aula, você seja capaz de:


• analisar as implicações culturais do desenvolvimento das tecnologias
digitais de informação e de comunicação;
• identificar as mudanças pelas quais a sociedade vem passando devido
às influências das TIC.

Para acompanhar esta aula, é importante que você tenha visto as aulas ante-
riores e identificado as transformações pelas quais as sociedades têm passado,
face aos impactos provocados pela revolução industrial e tecnológica. É preciso
também que você analise e pense a respeito de como o novo paradigma age
sobre a vida das pessoas. Será que todas as mudanças econômicas ocorridas
modificam a cultura dessa sociedade? Existe uma cibercultura? Se posicione e
reflita sobre este novo contexto em qual a humanidade está inserida.

Para Castells (2007), surge uma nova sociedade quando e se uma transfor-
mação estrutural puder ser observada nas relações de produção, de poder e de
experiência, de modo que estas transformações modifiquem substancialmente as
formas sociais de espaço e tempo e ao aparecimento de uma nova cultura. Na
aula passada, discutimos as principais transformações econômicas ocorridas na
sociedade, face às inovações tecnológicas. Verificamos que o modo de viver das
pessoas (isso inclui você e eu) tem sido transformado com tantos avanços tecno-
lógicos (Orkut e outras redes sociais virtuais, sms, telemedicina, teletrabalho,
e-commerce, youtube, ensino a distância). O novo paradigma sob o qual a
sociedade está organizada age diretamente no modo como as pessoas se rela-
cionam, seja em nível pessoal (amizades, namoro, encontros e outras reuniões

unitins • análise e desenvolvimento de sistemas • 1º PeRÍodo 227


aula 4 • infoRmática e sociedade

sociais de caráter pessoal), seja em nível de lazer (games massivos online, chats,
fã-clubes virtuais, fóruns sobre esportes, etc.) e nas relações profissionais (tele-
conferência, teletrabalho, telemedicina, etc.) ou em qualquer outro nível social.
Nesta aula, analisaremos como tais mudanças estruturais afetaram as supe-
restruturas, levando ao aparecimento de uma nova cultura, a cibercultura.

4.1 As tecnologias como produtos de uma sociedade e de uma cultura


O desenvolvimento acentuado das novas tecnologias causou e tem causado
grande impacto social, econômico e cultural. Hoje, vemos o computador como
integrador dos meios de comunicação tradicionais (impressos, sonoros, visuais)
ao mesmo tempo em que este se transforma em meio de comunicação autônomo
(correio eletrônico, conferências eletrônicas via texto (assíncronas e síncronas),
internet phone, conferência eletrônica por voz, a televisão e o vídeo intera-
tivos, vídeo conferência, imprensa, rádio e televisão digitais, vemos também
o computador contribuindo para o desenvolvimento de habilidades: simulação
de processos, experiências de laboratório, simulações: na conduta de vôos, na
educação médica, na produção de textos empresariais, de emergências sociais,
de guerras, e desastres.
Assim, toda esta tecnologia criou condições e possibilitou situações inusi-
tadas, jamais imaginadas em tempos anteriores. No entanto, há algo de que
não podemos nos esquecer: todas as alterações técnicas são acompanhadas de
mutações ocorridas no mundo social e cultural. As “tecnologias são produtos de
uma sociedade e de uma cultura” (LÉVY, 2007, p. 22). Portanto, não é possível
fazer distinção entre técnica, cultura e sociedade. Na verdade, o que percebemos
é que existe uma intensa relação entre estes três componentes não sendo possível
imaginar que tecnologias são “causas” dos acontecimentos e que uma cultura
“sofreria os efeitos” das inovações. O que ocorre, na verdade, é que existe
um grande número de relações entre atores humanos que inventam, produzem,
utilizam e interpretam de diferentes formas, as técnicas que são criadas (LÉVY,
2007). Assim, é inconcebível pensarmos as tecnologias como (ordem das causas)
e a cultura (sofredora dos efeitos). Nesse sentido, são os mesmos seres humanos
que inventam, produzem, utilizam as técnicas e fazem a interpretação das
mesmas. Ou seja, as técnicas carregam consigo projetos, esquemas imaginá-
rios, implicações sociais e culturais. Sua presença e uso em lugar e época deter-
minados cristalizam relações de força sempre diferentes entre os seres humanos.
Portanto, “por trás das técnicas agem e reagem idéias, projetos sociais, utopias,
interesses econômicos, estratégias de poder, toda a gama dos jogos dos homens
em sociedade” (LÉVY, 2007, p. 24).
Diante do que foi exposto no parágrafo anterior, percebemos que para anali-
sarmos as principais questões que permeiam a sociedade atual não podemos
somente olhar para as transformações e inovações técnicas, mas pensar a socie-

228 1º PeRÍodo • análise e desenvolvimento de sistemas • unitins


aula 4 • infoRmática e sociedade

dade como um todo, na qual aspectos técnicos, políticos, econômicos e sociais


estão extremamente entrelaçados. Abordaremos agora algumas destas questões.

4.2 As implicações culturais da cibercultura


Conforme nos aponta Castells, as mudanças nas relações de produção, de
experiência e de poder conduzem a uma mudança nas formas sociais do tempo
e do espaço e ao surgimento de uma nova cultura. Não é fácil analisar concre-
tamente as implicações culturais advindas da influência da informática sobre a
sociedade, pela ausência de estabilidade neste domínio. As inovações são tão
intensas, que às vezes torna-se difícil acompanhar todas as transformações ocor-
ridas. Veja o que nos diz Lévy (2007, p. 25).
Quando as capacidades de memória e de transmissão aumentam,
quando são inventadas novas interfaces com o corpo e o sistema
cognitivo humano (a “realidade virtual”, por exemplo) quando
se traduz o conteúdo das antigas mídias para o ciberespaço (o
telefone, a televisão, os jornais, os livros, etc.), quando o digital
comunica e coloca em um ciclo de retroalimentação processos
físicos, econômicos ou industriais anteriormente estanques, suas
implicações culturais e sociais devem ser reavaliadas sempre.

Novas espécies de mensagens proliferam nos computadores e nas redes


de computadores, tais como hipertextos, hiperdocumentos, simulações intera-
tivas e mundos virtuais. Segundo Pierre Lévy, estamos vivendo a cibercultura que
diferente das formas culturais que existiam antes, expressa o surgimento de um
novo universal “no sentido de que ele se constrói sobre a indeterminação de um
sentido global qualquer” (LÉVY, 2007, p. 15).
Na perspectiva deste autor, a cibercultura é caracterizada pela velocidade
das transformações, o que explica, parcialmente, a sensação de impacto, de
exterioridade, de estranheza que nos toma conta toda vez que tentamos entender
o movimento contemporâneo das técnicas. Esta aceleração é tão forte que atinge
tanto as profissões tradicionais quanto aqueles que estão intimamente ligados ao
mundo das transformações (pessoas que criam ou que trabalham diretamente
com as chamadas “novas tecnologias”).

Saiba mais

unitins • análise e desenvolvimento de sistemas • 1º PeRÍodo 229


aula 4 • infoRmática e sociedade

Para Lévy (2007) a cibercultura é complementar a uma segunda tendência


fundamental, a virtualização, cujo fundamento técnico é a digitalização. Para
ele, a virtualidade se constitui no traço distintivo da nova face da informação.
A extensão do ciberespaço acompanha e acelera uma virtualização geral da
economia e da sociedade. Nas palavras deste teórico (LÉVY, 2007, p. 47),
a universalização da cibercultura propaga a co-presença e a
interação de quaisquer pontos do espaço físico, social e infor-
macional. Neste sentido, ela é complementar a uma segunda
tendência fundamental, a virtualização.

Para Lévy, a cibercultura liga-se, direta e indiretamente, ao virtual. Diretamente,


a digitalização da informação pode ser aproximada da virtualização, pois no
centro das redes digitais, “a informação certamente se encontra fisicamente
situada em algum lugar, em determinado suporte, mas ele também está virtual-
mente presente em cada ponto da rede onde seja pedida” (LÉVY, 2007, p. 48
grifos do autor). Além disso, segundo este autor, a informação digital (traduzida
em zeros e uns, no bom e velho código binário) também pode ser qualificada
de virtual, na medida em que é inacessível enquanto tal ao ser humano. Na
verdade, o que ocorre? O cidadão comum só pode tomar conhecimento direto
de suas atualizações por meio da exibição das mesmas. Assim, os códigos de
computadores, ilegíveis para nós, atualizam-se em alguns lugares, agora ou
mais tarde, em textos legíveis, imagens visíveis, sons audíveis. Os games online,
as redes sociais, as rádios virtuais são a expressão final que interpretamos e
das quais julgamos a qualidade. Para os usuários, a maneira como os bits são
transmitidos ou os canais de comunicação são comutados pouco importa, assim
como pouco importa como o ar é formado, contando que possamos respirá-lo.
Indiretamente, o desenvolvimento das redes digitais favorece outros movi-
mentos de virtualização, pois o ciberespaço encoraja estilos de relaciona-
mento quase independente dos lugares geográficos (telecomunicação, tele-
presença) e da coincidência dos tempos (comunicação assíncrona). Para este
autor, apenas as particularidades técnicas do ciberespaço permitem que os
membros de um grupo humano (que podem ser tantos quantos se quiser) se
cooperem, alimentem e consultem uma memória comum, e isto quase em tempo
real, apesar da distribuição geográfica e da diferença de horários. O que
nos conduz diretamente à virtualização das organizações que, com a ajuda
das ferramentas da cibercultura, tornam-se cada vez menos dependentes de
lugares determinados, de horários de trabalho fixos e de planejamentos em
longo prazo. Da mesma forma, ao continuar no ciberespaço, as transações
econômicas e financeiras acentuam ainda mais o caráter virtual que possuem
desde a invenção da moeda e dos bancos.
Até aqui vimos que a cibercultura, é um conjunto de técnicas (materiais e
intelectuais), de práticas, de atitudes, de modos de pensamento e de valores,
que se desenvolvem juntamente com o crescimento do ciberespaço. Desta forma,

230 1º PeRÍodo • análise e desenvolvimento de sistemas • unitins


aula 4 • infoRmática e sociedade

segundo Lévy (2007), a cibercultura, diferentemente de outras formas culturais


anteriores, expressa o surgimento de um novo universal que se constrói sobre a
indeterminação de um sentido global qualquer.
Neste momento, já podemos e devemos indagar: quais os efeitos do uso da
internet sobre a sociabilidade?

4.3 A realidade social da virtualidade da internet


Na década de 1980, alguns estudiosos diziam que a internet provocaria
uma alienação no mundo real. Outros, pensando diferentemente, apontavam-na
como fonte de comunitarismo renovado. Bom, e o que dizem os estudos atuais?
Com relação a este assunto os relatos são conflitantes. Há pesquisas que
mostram o aumento da sociabilidade e outros que evidenciam o efeito isolador
da Internet. Para discutirmos esse assunto, nos utilizaremos dos estudos feitos por
Manuel Castells em sua obra A galáxia da internet: reflexões sobre a internet, os
negócios e a sociedade.
Baseando-se em pesquisas feitas nos EUA, Castells (2003) afirma que os
estudos evidenciaram um nível mais elevado ou igual de envolvimento comuni-
tário e político entre usuários da internet, quando comparados com não-usuários.
Encontram, também, uma associação positiva entre o uso da Internet e a freqüência
de telefonemas realizados, além de um maior nível de interação social. Mostram
também que usuários da Internet tendem mais do que não-usuários a se encontrar
com amigos a ter uma vida social longe de casa, embora suas redes de interação
social sejam mais dispersas espacialmente que as dos não-usuários. Os dados
colhidos informam que a atividade on-line não tem impacto sobre o tempo passado
com a família e os amigos.
Nas palavras de Castells (2003, p. 101) citando Anderson; Tracey (2001),
não há indícios, a partir de dados, de que indivíduos que têm
agora acesso à Internet em casa e o utilizam estejam gastando
menos tempo assistindo televisão, lendo livros, ouvindo rádio ou
envolvidos em atividade social na casa se comparados a indiví-
duos que não têm (ou não tem mais) acesso à Internet em casa.
As únicas mudanças que podem ser associadas ao ganho de
acesso à Internet são um aumento do tempo dedicado ao e-mail
e ao surfe na Web – um resultado espantosamente óbvio. A (sic)
únicas mudanças que podem ser associadas à perda do acesso
à Internet são um menor tempo gasto no preparo da comida,
mudanças em circunstâncias educacionais e no emprego remune-
rado baseado em casa.

Ainda segundo Castells (2003), o uso do e-mail aumenta a vida social com
a família e os amigos, e amplia os contatos sociais. Além disso, evidencia que
as pesquisas deixam claro que usuários da Internet tendem a ter redes sociais
maiores que os não-usuários.

unitins • análise e desenvolvimento de sistemas • 1º PeRÍodo 231


aula 4 • infoRmática e sociedade

Outro dado evidenciado pelas pesquisas é que os usuários da Internet


freqüentam mais eventos de arte, lêem mais literatura, vêem mais filmes, assistem
mais esportes e os pratica também.
No entanto, há estudos conflitantes com o que foi apresentado até agora.
Algumas pesquisas observaram a perda de envolvimento social entre usuários
pesados da Internet, ao mesmo tempo em que relataram que, para a maioria dos
usuários, não houve mudanças significativas em suas vidas.
Diante do que foi exposto, você deve estar se perguntando: e aí, a Internet
isola ou não as pessoas? O que podemos responder, baseados em Castells
(2003), é que, de modo geral o corpo de dados não sustenta a tese de que o
uso da internet leva à menor interação social e maior isolamento social. Porém,
há indícios de que, sob certas circunstâncias, o uso da Internet pode substituir
outras atividades sociais. O que as pesquisas mostram é que, após certo limiar
de atividade online, os usuários de fato substituem outras atividades, como os
serviços domésticos, o cuidado com a família ou o próprio sono, pelo uso acen-
tuado da internet. Inúmeros estudos têm demonstrado que crianças que passam
várias horas em frente ao computador estão ficando obesas e apresentando
sérios problemas de saúde. Além disso, há várias pessoas que passam o tempo
perdidas entre “heróis” e monstros presentes em jogos imaginando-se “super-
heróis”. Dessa forma, fogem da realidade, às vezes marcada por dificuldades
e deficiências. No mundo virtual, se sentem fortes, bonitos, com poderes para
matar inimigos e com poder de realização das mais variadas façanhas.

4.4 A internet como suporte material para o individualismo em rede


O novo padrão de sociabilidade em nossas sociedades é caracterizado
pelo individualismo em rede. Qual o papel da Internet nesse contexto? Ou seja,
que papel ela desempenha nesse contexto, no sentido de possibilitar ou limitar
esse individualismo? Segundo Castells (2003), os laços criados pela internet são
fracos, pois raramente constroem relações pessoais duradouras. De acordo com
este autor,
as pessoas se ligam e se desligam da Internet, mudam de inte-
resse, não revelam necessariamente sua identidade (embora não
simulem uma diferente), migram para outros padrões on-line. Mas
se as conexões específicas não são duradouras, o fluxo perma-
nece, e muitos participantes da rede o utilizam como uma de suas
manifestações sociais (CASTELLS, 2003, p. 108).

Ao mesmo tempo em que a Internet contribui para a criação de laços fracos,


ela tem contribuído para a estruturação de relações sociais, cujo padrão de
sociabilidade baseia-se no individualismo. Não é que a Internet cria um padrão
de individualismo em rede. O que se constata é que seu desenvolvimento fornece
suporte material apropriado para a difusão do individualismo em rede como a
forma dominante de sociabilidade, (CASTELLS, 2003). É importante frisar que

232 1º PeRÍodo • análise e desenvolvimento de sistemas • unitins


aula 4 • infoRmática e sociedade

o individualismo em rede é um padrão social, não um acúmulo de indivíduos


isolados. O que ocorre é que
indivíduos montam suas redes, on-line e off-line, com base em seus
interesses, valores, afinidades e projetos. Por causa da flexibilidade
e do poder de comunicação da Internet, a interação social on-line
desempenha crescente papel na organização social como um todo.
As redes on-line, quando estabilizam em sua prática, podem formar
comunidades, comunidades virtuais, diferentes das físicas, mas não
necessariamente menos intensas ou menos eficazes na criação de
laços e na mobilização. Além disso, o que observamos em nossas
sociedades é o desenvolvimento de uma comunicação híbrida que
reúne lugar físico e ciber lugar (para usar a terminologia de Wellman)
para atuar como suporte material do individualismo em rede.

A citação anterior nos permite afirmar que estamos vivendo uma época em
que está presente uma “noção de espaço, em que o físico e virtual se influenciam
um ao outro, lançando as bases para a emergência de novas formas de sociali-
zação, novos estilos de vida e novas formas de organização social” (CARDOSO
citado por CASTELLS, 2003, p. 110).
Castells citando Waller (2000) afirma que a Internet está sendo usada para
redefinir as relações de família, numa sociedade em que as pessoas estão expe-
rimentando novas formações familiares.
A partir do que foi exposto acima, você pode perceber que a prática do
individualismo em rede parece estar redefinindo as fronteiras e o significado de
instituições tradicionais de sociabilidade, entre elas, a família. Bem como está
também levando os indivíduos a construírem formas de sociabilidade em torno
de interesses específicos, na medida em que podem participar de certas comuni-
dades virtuais no momento e da forma que querem.

Saiba mais

Fonte: <
<http://veja.abril.com.br/180407/p_096.shtm>
http://veja.abril.com.br/180407/p_096.shtm>ll.
http://veja.abril.com.br/180407/p_096.shtm>

unitins • análise e desenvolvimento de sistemas • 1º PeRÍodo 233


aula 4 • infoRmática e sociedade

Nesta aula, analisamos como as mudanças estruturais afetaram as superestru-


turas, levando ao aparecimento de uma nova cultura: a cibercultura. Assim, falamos
que a noção de espaço tem sido alterada e que o físico e o virtual se influenciam
um ao outro, propiciando as bases para a emergência de novas formas de socia-
lização, novos estilos de vida e novas formas de organização social.

1. Segundo Lévy (2007) as “tecnologias são produtos de uma sociedade e


de uma cultura”. Produza um texto de no mínimo 15 linhas, justificando
esta afirmação.

2. Gilberto Gil em sua música A Rede nos diz que “criar meu web site, fazer
minha home page, com quantos gigabytes, se faz uma jangada, um barco
que veleje”. Construa um pequeno texto discutindo como os termos da internet
estão disseminados na sociedade e como isto faz parte da cibercultura.

3. Com relação ao pretenso isolamento provocado pela Internet, assinale a


alternativa que melhor evidencia os resultados das pesquisas.
a) De modo geral, o corpo de dados não sustenta a tese de que o uso da
Internet leva a menor interação social e maior isolamento social.
b) De modo geral, o corpo de dados sustenta a tese de que a internet leva
a um maior isolamento social.
c) De modo geral, o corpo de dados sustenta que a internet não provoca
em nenhuma situação o isolamento social.
d) De modo geral, o corpo de dados sustenta que a internet mesmo em situa-
ções extremas de uso pelas pessoas não pode causar o isolamento social.

4. “Um conjunto de técnicas (materiais e intelectuais), de práticas, de atitudes,


de modos de pensamento e de valores que se desenvolvem juntamente com
o crescimento do ciberespaço”. A definição citada refere-se à:
a) virtualidade; c) web;
b) internet; d) cibercultura.

Na atividade um, você deve ter dito que as tecnologias e o uso das mesmas
não podem ser compreendidas isoladamente. Tanto suas descobertas, inova-

234 1º PeRÍodo • análise e desenvolvimento de sistemas • unitins


aula 4 • infoRmática e sociedade

ções quanto o uso estão sempre ligadas a um contexto social e cultural. Assim,
para analisarmos as principais questões que permeiam a sociedade atual, não
podemos somente olhar para as transformações e inovações técnicas, mas pensar
a sociedade como um todo, na qual aspectos técnicos, políticos, econômicos e
sociais estão extremamente entrelaçados. Assim, é inconcebível pensarmos as
tecnologias como (ordem das causas) e a cultura (sofredora dos efeitos). Nesse
sentido, são os mesmos seres humanos que inventam, produzem, utilizam as
técnicas e fazem a interpretação das mesmas.
Na atividade dois, você deve teve ter dito que a cibercultura é um conjunto de
técnicas (materiais e intelectuais), de práticas, de atitudes, de modos de pensamento
e de valores que se desenvolvem juntamente com o crescimento do ciberespaço.
Você deve ter afirmado que estamos vivendo numa época em que o físico e o virtual
se influenciam um ao outro, lançando as bases para a emergência de novas formas
de socialização, novos estilos de vida e novas formas de organização social.
Na atividade três, a resposta correta é a (a), pois o que vimos em nossas
aulas é que, de modo geral, o corpo de dados não sustenta a tese de que o uso
da Internet leva a menor interação social e maior isolamento social. A letra (b)
está incorreta, na medida em que contraria totalmente o que foi dito na letra a.
As letras (c) e (d) estão incorretas. De modo geral, as pesquisas afirmam que a
internet pode provocar o isolamento social, desde que seu uso se dê acima de
um limiar que permita a conciliação com outras atividades.
Na atividade quatro, a resposta certa é a (d). Diretamente, a digitalização
da informação pode ser aproximada da virtualização. A cibercultura é um
conjunto de técnicas (materiais e intelectuais), de práticas, de atitudes, de modos
de pensamento e de valores que se desenvolvem juntamente com o crescimento
do ciberespaço. Segundo Lévy, a cibercultura, diferentemente de outras formas
culturais anteriores, expressa o surgimento de um novo universal que se constrói
sobre a indeterminação de um sentido global qualquer.

Nesta aula, vimos que as mudanças nas relações de produção, de expe-


riência e de poder conduzem a mudanças nas formas sociais do tempo e do
espaço e ao surgimento de uma nova cultura, a cibercultura. Vimos também que
não há consenso acerca do isolamento provocado pela Internet. Evidenciamos
ainda que o novo padrão de sociabilidade em nossas sociedades é caracteri-
zado pelo individualismo em rede, que tem redefinido as fronteiras e o signifi-
cado de instituições tradicionais de sociabilidade, entre elas, a família.

CASTELLS, Manuel. A galáxia da internet: reflexões sobre a internet, os negócios


e a sociedade. Rio de Janeiro: Jorge Zahar, 2003.

unitins • análise e desenvolvimento de sistemas • 1º PeRÍodo 235


aula 4 • infoRmática e sociedade

______. Fim de milênio: a era da informação – economia, sociedade e cultura.


4. ed. São Paulo: Paz e Terra, 2007. v. 3.
LÉVY, Pierre. Cibercultura. 2. ed. 6. reimp. São Paulo: 34, 2007.

Anotações

236 1º PeRÍodo • análise e desenvolvimento de sistemas • unitins


aula 5 • infoRmática e sociedade

Aula 5
Mercado de trabalho

Esperamos que, ao final desta aula, você seja capaz de:


• identificar o comportamento e a direção de projeção do mercado de
trabalho dentro de uma economia global;
• descrever os novos desafios exigidos pelo mercado de trabalho da socie-
dade do século XXI, no contexto das TIC, ao trabalhador do paradigma
da informação.

Necessita compreender que as transformações econômicas, sociais e cultu-


rais, vistas nos capítulos anteriores, vão refletir significativamente no mercado de
trabalho. A percepção de como as tecnologias da informação e comunicação
têm afetado todos os segmentos da sociedade é fundamental para a compre-
ensão do funcionamento do mercado de trabalho na Era Digital.

Observe a vida ao seu redor e constate a grande quantidade de inovações


existentes hoje que não existiam na época de seus avós, e até mesmo de seus
pais: do celular ao iphone, da máquina de escrever elétrica ao laptop, são
muitas as inovações tecnológicas que, em velocidade gigantesca, são criadas
e propagadas nas útimas décadas do século XX. O fato de hoje você poder
paquerar ou marcar uma visita a um amigo via SMS (mensagem de texto
enviada via celular) significa que seu modo de viver e se relacionar já foi alte-
rado, não acha? Você pode até se perguntar: como as pessoas “sobreviviam”,
naquela época, sem vídeo game ou celular ou sem orkut ou banco online? A
realização de tais questionamentos evidencia o fato de nossa sociedade estar
fortemente modificada em nível econômico, político e cultural, por causa da
tecnologia da informação.

unitins • análise e desenvolvimento de sistemas • 1º PeRÍodo 237


aula 5 • infoRmática e sociedade

Todas essas mudanças alteram o mercado de trabalho que se planifica,


possuindo distâncias encurtadas graças aos cabos de fibra óptica, cabos subma-
rinos intercontinentais, satélite e redes wireless que garante uma ótica merca-
dológica em nível global muito mais nervosa, imediata e eficiente. Nesta aula,
veremos como as novas tecnologias da informação e da comunicação alteraram
o mercado de trabalho dentro da sociedade contemporânea, pressionando
mudanças de atitude, desafiando o trabalhador da era digital a assumir posturas
cada vez mais versáteis.

5.1 A sociedade frente à economia global


Uma nova sociedade mundial se expandiu por diversas facetas, demons-
trando uma modernização que foi acompanhada pelo forte uso da racionalidade
e sua aplicação, cada vez mais intensa, de recursos tecnológicos. Esses recursos
exigiram uma reordenação das crenças e dos valores, além da veemente difusão
cultural do bem-estar, da divulgação da informação e do mais diversos conheci-
mentos que controlam os modos de produção que não estão mais baseados na
mão-de-obra do trabalhador braçal (QUINTELA, 1997). O processo de globali-
zação é irreversível. Isso já vem sendo um consenso entre os líderes e estudiosos
ao redor do mundo.

Saiba mais

Uma das conseqüências que podemos visualizar claramente é a competição


comercial cada vez mais acirrada entre companhias locais, regionais e multina-
cionais. Empresas Globais, como a Google, Yahoo, Microsoft disputam espaços
gigantescos, com os quais o vencedor ficará ainda mais poderoso e rico. Nesse
contexto, o Brasil, por exemplo, está diante de um desafio: estimular ambientes
inovadores para que propiciem a participação nos mercados nacionais e inter-
nacionais. Essa participação nos mercados poderá vir de outra grande empresa
ou mesmo de um pequeno grupo de estudantes que se uniram e montaram
uma microempresa com um ótimo produto, causando, assim, um impacto no
mercado. Estes impactos e micro-impactos são o combustível que influenciam
os fluídos do andamento do mercado, agindo na geração dos chamados ciclos
disruptivos. A tabela a seguir identifica alguns ambientes propensos a se tornar
casos de ciclos disruptivos:

238 1º PeRÍodo • análise e desenvolvimento de sistemas • unitins


aula 5 • infoRmática e sociedade

SETOR ATACANTE DOMINANTE FLANCO


Jatos com capacidade
Bombardier Boeing
Aeronáutico na faixa de 100-150
Embraer Airbus
passageiros
TAM
Transporte Gol Transporte Regional ponto
Varig
Aéreo JetBlue a ponto
AA, UA
Telefônica
Celular – (todas as
Telemar
operadoras)
Telecom Brasil Telecom Comunicação de voz
VoIP – (Skype,
GVT, Transist) (monopólios
regionais)
Grupo Pão de
Açúcar Não-consumidores das
Varejo Casas Bahia classes C e D (mais recente-
Carrefour
mente classes A e B)
Wallmart
Cuil (projeto de
Pesquisa Google Serviço on-line de pequisas
ex-funcionários da
On-Line Yahoo de sites e conteúdos on-line
Google)
Fonte: Rego (2007, p. 111).

Neste cenário de planificação mundial, atividades massivas de países desen-


volvidos são delegadas a países em desenvolvimento. É o caso dos Estados
Unidos, que utilizam os serviços da Índia para uma infinidade de atividades
que envolvem comunicação e informação. Um empregado indiano custa várias
vezes menos do que um empregado novaiorquino. Milhares de declarações de
imposto de renda de cidadãos americanos são realizadas por indianos que
trabalham em companhias altamente organizadas dentro de seu próprio país.
Esse interessante comportamento gera um compromisso ganha-ganha: os conta-
dores americanos economizarão no contrato de funcionários e delegarão a reali-
zação de tarefas mais massivas e enfadonhas aos indianos, que, por sua vez,
ganham com emprego e educação para capacitação na área contábil.

Saiba mais

unitins • análise e desenvolvimento de sistemas • 1º PeRÍodo 239


aula 5 • infoRmática e sociedade

5.2 Impactos no mercado de trabalho


O mercado de trabalho está altamente fixado às mudanças que os avanços
tecnológicos, cada vez mais cadenciados e nervosos, trazem à sociedade
mundial. Antigamente, no Brasil (pergunte ao seu pai ou ao seu avô), conse-
guir um emprego era questão de se saber realizar alguma atividade: não
era necessária muita perícia ou especialização em determinado assunto. Um
simples segundo grau (hoje, conhecido como ensino médio) já era o suficiente
para se destacar como um profissional qualificado para as necessidades do
mercado de trabalho da época. Hoje, apesar de o mercado ainda filtrar e
contratar pessoas autodidatas, sem diploma, a tendência é que os bacharéis,
pós-graduados, mestres e doutores sejam colocados em prioridade, especial-
mente quando se trata de empregos que envolvam alta tecnologia.
Com relação à informática, existe uma grande polêmica que discute a
questão: “pode um não graduado trabalhar na área de informática?”. Ao
longo das discussões que podem ser presenciadas sobre o assunto, ainda
não existe uma conclusão definitiva. Antigamente, quando ainda não existiam
cursos superiores de informática, computação ou tecnologias em análise e
desenvolvimento de sistemas, os profissionais da matemática, contabilidade,
física, química, etc., acabavam por incorporar disciplinas que hoje estão
dentro do contexto de um curso de tecnologia, para possibilitar a resolução
de problemáticas que envolviam sua área de atuação. O número de doutores
em matemática, por exemplo, que se especializavam em computação era alto.
Os primeiros cursos de tecnologia da informação que surgiram tinham como
professores, estes doutores.
Hoje, o mercado de tecnologia da informação é tão e vasto que muitas
empresas não podem esperar por um profissional que saia da faculdade. A
companhia Google possuía um sistema de seleção interessante: uma mistura de
olheiros e de entrevistas com perguntas do tipo: “Você sabe quantas árvores,
aproximadamente, devem existir em nosso jardim, por onde você entrou, há
pouco tempo?”.
As mudanças mundiais acabam por exigir um profissional que tenha um
alto nível de empregabilidade, ou seja, possua conhecimentos em múltiplas
áreas. As empresas e demais organizações estão sendo forçadas a mudar seu
modelo administrativo e repensar modelos de gestão e sua estrutura hierár-
quica. A sociedade da informação não garante que um executivo, estável há
muitos anos em uma empresa, permaneça neste cargo somente por que está a
muitos anos neste mesmo lugar. É preciso que ele esteja em um estado contínuo
de atualização em meio às alterações e novas possibilidades do mercado. É
necessário que se recicle e busque constantemente o saber, se orientando por
projetos e não por carreira.

240 1º PeRÍodo • análise e desenvolvimento de sistemas • unitins


aula 5 • infoRmática e sociedade

Saiba mais

5.3 Perturbações previstas no mercado formal


Robotização e Automação. Eis duas terminologias que trazem bons e maus
ventos, a depender do “marinheiro” que o enfrentar. O mercado formal está
sofrendo mudanças, sendo que a robotização está tomando cada vez mais
espaço, realizando atividades cada vez mais difíceis e de precisão, o que seria
um “bom vento”, porém substituindo muitos trabalhadores, na proporção de um
para dez, um para cem ou até mesmo um para mil, o que já é um “mau vento”
à formação de uma grande massa
de desempregados. A Automação Figura 1 Unmanned Factory: uma fábrica inteira sem empre-
também segue este princípio, se encar- gados humanos. Desemprego e produtividade.
regando de automatizar processos
enfadonhos e repetitivos como, por
exemplo, empilhar produtos, contar
notas, calcular prestações, carregar
minério, etc. Todo este uso de auto-
mação e robotização se assemelha
a realidades antes somente vistas
em ficção científica, conforme Adam
Schaff (1995).
Para Schaff (1995), a excessiva
automação e robotização levará ao
desaparecimento do trabalho (não a
atividade humana) e da classe traba-
lhadora. Segundo ele, na nova estru-
tura social, o estrato social será inte-
grado por cientistas, engenheiros, Fonte: http://www.emeraldinsight.com/fig/0330280203007.png

unitins • análise e desenvolvimento de sistemas • 1º PeRÍodo 241


aula 5 • infoRmática e sociedade

técnicos, responsáveis pelo funcionamento e progressos das indústrias e dos


serviços e especialistas para a distribuição dos bens. O trabalho manual desa-
parecerá, assim como terá desaparecido o proletariado no sentido tradicional
da palavra; o trabalho intelectual se dividirá entre trabalho intelectualizado e
gênios. O trabalho rural se aproximará do trabalho urbano.
Ainda mencionando o referido autor, na sociedade da informática, a
ciência provavelmente assumirá o papel de força produtiva, pois mesmo hoje
a força do trabalho vem sofrendo alterações que modificam e fazem desapa-
recer o seu sentido social. Isso significa que trabalhar já não poderá significar
interagir com os colegas, trocar experiências ou relacionar-se durante o expe-
diente de trabalho.
Nesta sociedade, os profissionais que não quiserem ficar desempregados
deverão aguçar a criatividade para a geração de novas soluções, aprendendo
a operar o robô que automatiza um processo ou então criar os robôs ou sistemas
que automatizam determinada atividade. Por falar em automação, o termo auto-
mação comercial se refere, justamente, a um sistema informatizado encarregado
de realizar as mais repetitivas, mas, não menos importantes, tarefas relacionadas
ao cadastro de informações de clientes, produtos, vendas, estoque, etc. Assim,
repare, então, o quanto nosso curso trabalha com um nicho de mercado atual-
mente amplo e cheio de oportunidades para aqueles que estiverem dispostos a
aprender e a praticar o desenvolvimento de sistemas.

5.4 Informática: empresas e serviços


Quais são as melhores oportunidades do mercado hoje? Quais são as
empresas e os serviços que mais lucram na rede e no globo? Existem nichos
milionários ainda escondidos dentro deste paradigma (das TIC), cujas caracte-
rísticas ainda não foram totalmente exploradas?
A fim de responder a estes questionamentos, precisamos viajar pelos funda-
mentos que delineiam o paradigma vigente. Consideramos, assim, que a infor-
mação é o produto mais valioso desta era. Ela não tem cor, nem pode ser
tocada, porém pode ser transmitida e multiplicada. Uma informação repassada
nunca se perde: tanto o transmissor como os receptores ganham com sua trans-
missão. Ela não respeita limites territoriais, podendo escorregar por entre as
mais densas paredes de concreto e até mesmo por “paredes de fogo” (firewalls),
por exemplo, estando criptografada.
As empresas têm este grande desafio pela frente, aliás, ao derredor: dominar
o uso da informação. A informática compreende um conjunto de técnicas rela-
cionadas ao tratamento lógico e automático da informação servindo, assim, de
meio vital para uso das companhias. Nenhuma empresa que queira crescer em
nível municipal, estadual, nacional ou internacional poderá escapar de usar a

242 1º PeRÍodo • análise e desenvolvimento de sistemas • unitins


aula 5 • infoRmática e sociedade

informática computadorizada como meio de armazenamento, análise, organi-


zação e transmissão de informações.
Em face desta realidade de relacionamento com a informação, as empresas
precisam, além de prover somente produtos, prover serviços que envolvam o uso
da informação. Grandes empresas de tecnologia, hoje, aplicam este conceito
de fornecimento de serviços, “gratuitos”, muitas vezes, em troca de publici-
dade, a exemplo das mega companhia Google e Yahoo. Informação torna-se
poder e, neste contexto, o mercado de trabalho caminha dando preferência aos
profissionais que não somente retêm o conhecimento, mas possuem técnicas de
como transmiti-lo.
Quando a informação é transmitida, deparamo-nos com a comunicação.
Podemos afirmar que a televisão e o rádio perderam o monopólio sobre este
aspecto: a rede mundial de computadores permite a qualquer cidadão conec-
tado, escrever, gravar voz e vídeo de suas próprias idéias. Escritores de blogs
se destacam entre grandes escritores, com a vantagem de seus artigos estarem
disponíveis imediatamente na rede, após sua postagem, diferentemente de
um livro, que precisaria de revisão, encadernação, impressão e distribuição.
Bandas musicais que antes, por falta de recursos, nunca seriam conhecidas e
melhor remuneradas, podem divulgar suas músicas e clipes pela rede, possibili-
tando aumentar o número de fãs pelo globo. O sítio de vídeos Youtube começou
como uma simples idéia de jovens que queriam facilitar suas próprias e vidas
e, de repente, foi comprado pela gigante Google, pelo valor de 1,65 bilhões
de Dólares (Quem diria? Já pensou se você tivesse tido esta idéia antes deles?).
Todas estas novidades, serviços e produtos virtuais servem para difundir algo
muito real, apesar de abstrato: a informação.
Alguns produtos e serviços podem ser disponibilizados on-line, por meio de
cidadãos comuns, ou estudantes dentro de garagens conectadas, em velocidade
muito superior a grandes e burocráticas empresas. Algumas empresas, por causa
disso, surgem tendo como razão de ser a própria tecnologia da informação e
comunicação. Para Graeml (2001), este processo ocorre, uma vez que o esforço
do ser humano se torna cada vez menos físico, devido ao fato de que novas
tecnologias substituem músculos, movimentos repetitivos de membros humanos,
por engrenagens e robôs automatizados. Isso tem seu lado bom: permite ao ser
humano concentrar-se em sua capacidade criativa e pensante. Isso significa que
pessoas criativas poderão exibir seus produtos pela rede mundial de computa-
dores, a bilhões de pessoas, sem precisar gastar um centavo com marketing, em
velocidade superior a muitas companhias. A probabilidade de novas empresas
surgirem, a partir dessas iniciativas (devido às pessoas começarem a lucrar, com
vendas e publicidade, e acabarem abrindo uma empresa para melhor gerir o
negócio), é muito grande. Aliás, é tão grande que foge da percepção de muitas
pessoas, que preferem “ir tocando seus negócios” dentro de uma visão local,
sem nem pensar em ter sequer um sítio divulgando suas idéias.

unitins • análise e desenvolvimento de sistemas • 1º PeRÍodo 243


aula 5 • infoRmática e sociedade

Figura 2 Internet: portas abertas para Na visão de Peter Drucker (2000), se, por
novas oportunidades. um lado, a chegada da ferrovia transformou a
maneira como o homem percebia a distância,
transformando profundamente economia geográ-
fica (encurtando o mundo), a telemática (teleco-
municações + informática) está “eliminando” defi-
nitivamente a distância (planificação do mundo
em um mapa de nós interconectados) e criando
uma única economia e um único mercado. Por
isso, empresas e pessoas precisam criar idéias,
já considerando a ausência de uma unidade de
lugar, devido ao novo paradigma ser marcado
pela informação comunicada rapidamente pela
grande rede. Assim, os novos negócios que
surgem podem ser definidos como negócios da
era digital. Provedores de internet, revendedores
de domínios e serviços de hospedagem de sítios,
servidores de jogos online, enciclopédias virtuais
(você se lembra do fato de que, ter uma enci-
clopédia, composta por vários e grossos livros
de capa dura, em casa, era algo chique?), agendas online,
enfim, tudo que puder ser informatizado e disposto na rede torna-se
um produto lucrativo. O ambiente global torna-se mais competitivo e
cruel para algumas empresas que não consigam se contextualizar; porém, o
leque de opções é vasto e existem inúmeros espaços a serem explorados por
empresa, pessoas e por você, aluno!

5.5 Outros impactos


O mercado de trabalho continua sendo impactado pelo constante caminhar
do progresso tecnológico. Podemos considerar uma série de características, notá-
veis dentro de nosso contexto de vida contemporâneo, possíveis com o advento
da internet.
A internet, WWW – World Wide Web – Rede de abrangência mundial, é
composta de inúmeros computadores interligados ao redor do globo. Mesmo
que milhões, em determinado instante, estejam desligados, outros milhões
estarão ligados, isso sem contar os grandes servidores de alta disponibilidade,
online, praticamente 24h por dia (Bancos, Google, Microsoft, Sun, Corretoras
de Câmbio, etc.,). A internet surgiu a partir da ARPANET, uma rede de pesquisa
com intuito de interconectar governo, cientistas e estudantes, em 1969. A partir
de então, o número de computadores foi aumentando gradativamente. Em
1980, seu uso já era comercial e, desde então, continua progredindo até os
dias de hoje. O mercado de trabalho foi, automaticamente, tomando a forma da

244 1º PeRÍodo • análise e desenvolvimento de sistemas • unitins


aula 5 • infoRmática e sociedade

internet. Termos como teletrabalho, telemedicina, teleeducação, teleconferência,


enfim, “telequalquercoisa”, passaram a se tornar cada vez mais próximos da
realidade dos cidadãos.
A internet possibilita que empresas (Business – B), governo (Government
– G) e cidadãos (Citizen – G) possam interagir, assim como no mundo real,
aliás, a internet não se define, nesse aspecto, em um mundo virtual, alheio à
realidade, mas, pelo contrário, torna-se uma extensão do mundo real. Assim, a
tabela a seguir lista os tipos de interação de serviços oferecidos e recebidos pelo
governo, empresa e cidadão:

Tabela Interações comerciais entre Business, Citizen, Government.

NEGÓCIOS - CIDADÃO - GOVERNO –


BUSINESS (B) CITIZEN (C) GOVERNMENT (G)
B2B – Negócio B2C – Negócio B2G – Mesmo que
para Negócio, para Consumidor. G2B.
relacionamento Ex: E-Commerce
entre empresas. Ex: varejista, transações
Negócios –
Transação on-line de venda on-line
Business (B) de venda, de (www.submarino.
empresa atacadista com.br).
(fornecedora) para
a varejista.
C2B – Consumidor C2C – Cidadão C2G. Mesmo que
para Negócio. para Cidadão. G2C.
Aqui, o consumidor Lugares para o
Cidadão – citizen descreve o que cidadão expressar
(C) ele quer: menor a sua e-democracia.
preço, preferência Ex: www.reaclame-
e emprego. Ex: sites aqui.com.br.
de curriculums.
G2B – Governo G2C – Governo G2G – Governo
para Negócio. Ex: para Cidadão. para Governo.
Licitações virtuais, Serviços de consulta Relacionamento
pregões eletrônicos, de multas on-line entre organizações
Governo – a exemplo do sítio (DETRAN), emissão governamentais
government (G) www.comprasnet. de certificados, pela internet, por
gov.br, do governo certidões negativas, exemplo das esferas
federal para a declaração de municipal, estadual
realização pregões imposto de renda, e federal.
eletrônicos. etc.

A internet é cada dia mais usada para interação entre diversas catego-
rias de pessoas, empresas e governos, como na lista anterior. A partir dessas
possibilidades, podemos pensar: será que as cidades deixarão de existir, com
o avançar dessas relações cada vez mais virtuais? Tal pensamento causou

unitins • análise e desenvolvimento de sistemas • 1º PeRÍodo 245


aula 5 • infoRmática e sociedade

o chamado mito do fim das cidades. Castells (2003, p. 185) declara que o
planeta inteiro está sendo “reorganizado em torno de gigantescos nós metro-
politanos, que absorvem uma proporção crescente da população urbana”. Ele
também afirma (2002, p. 502) que “um conjunto de nós interconectados forma
uma rede” e
nessa rede, nenhum lugar existe por si mesmo, já que as posições
são definidas pelos intercâmbios de fluxos da rede. Conseqüente-
mente, a rede de comunicação é a configuração espacial
fundamental: os lugares não desaparecem, mas sua lógica e
seu significado são absorvidos na rede. A infra-estrutura tecno-
lógica que constrói a rede define o novo espaço como as ferro-
vias definiam as ‘regiões econômicas’ e os ‘mercados nacionais’
na economia industrial; ou as regras institucionais de cidadania
específicas das fronteiras (e seus exércitos tecnologicamente avan-
çados) definiam ‘cidades’ nas origens mercantis do capitalismo e
da democracia.

Após viajarmos por estes conceitos e pensamentos sobre a WWW e as


cidades, conseguimos compreender que a grande rede tem se portado como
uma poderosa ferramenta para interconectar os nós metropolitanos, permitindo
o escoamento de informação de um nó para o outro, nivelando o conhecimento
entre todos os cidadãos moradores dos nós e que estejam, obviamente, digital-
mente inclusos.

Durante esta aula, abordamos o mercado de trabalho da sociedade da


informação. Para que esta abordagem fosse efetiva, relatamos a nova economia
global e o relacionamento da sociedade impactada pelos novos meios de
se fazer negócio, entendendo os impactos globais e a granularização do
trabalho em áreas altamente especializadas (fábrica e aviões, equipamentos
de engenharia civil, softwares, etc.). Abordamos os impactos da informática
no mercado de trabalho corrente, incluindo a polêmica sobre a regularização
da classe de informática, e outras perturbações previstas no mercado formal,
devido à influência da informática no modo de ser de empresas e serviços,
além de outros impactos, por exemplo, no modo de relacionamento eletrô-
nico de trabalho, por meio da internet, entre governo, cidadãos, empresas ou
demais organizações.

1. A globalização é um processo que diminui distâncias, planifica contextos


e altera sociedades. Descreva, em poucas linhas, sobre o processo de
globalização histórico e suas influências no mercado de trabalho.

246 1º PeRÍodo • análise e desenvolvimento de sistemas • unitins


aula 5 • infoRmática e sociedade

2. O mercado de trabalho movimenta-se para um estado de exigência cada vez


maior, de acordo com velocidade que as novas tecnologias permitem realizar
os mais variados processos. Dentro deste contexto, julgue os itens a seguir.
I. Hoje, a tecnologia permite que pensemos menos. Assim, conseguir um
emprego é questão de se saber realizar alguma atividade: não é neces-
sária muita perícia ou especialização em determinado assunto.
II. Devido ao nível de especialização exigida em tecnologias de informação
do mercado contemporâneo, somente um graduado pode trabalhar na
área de informática, por exemplo, desenvolvimento de sistemas.
III. As mudanças mundiais acabam por exigir um profissional que tenha
um alto nível de empregabilidade, ou seja, possua conhecimentos em
múltiplas áreas.

Assinale a alternativa correta.


a) todas as afirmações estão corretas;
b) somente a afirmação II está correta;
c) somente as afirmações I e II estão corretas;
d) somente a afirmação III está correta;
e) todas as afirmações estão incorretas.

3. A internet causou grandes mudanças no contexto do mercado de trabalho,


exigindo do trabalhador diversos posicionamentos. Que posicionamentos
são esses? Justifique sua resposta.

4. O mercado de trabalho do século XXI anda de mãos dadas com a infor-


mação e a comunicação. Julgue a(s) alternativa(s) que são quesitos, desafios
deste mercado, exigidos a um trabalhador da informação qualificado para
a maioria das atividades dos centros urbanos.
I. Capacidade de operação de sistemas automatizados.
II. Domínio de técnicas de comunicação via internet.
III. Domínio de técnicas de agricultura e criação de componentes eletrônicos.
IV. Capacidade de identificar e utilizar serviços marcados pelo relaciona-
mento entre governo, empresas e organizações e cidadãos (B2B, C2C,
G2G, B2C, etc.).

a) Somente as afirmações I, II e IV estão corretas.


b) Somente as afirmações I, II e III estão corretas.
c) Somente as afirmações II, III e IV estão corretas.
d) Todas as afirmações estão corretas.
e) Todas as afirmações estão incorretas.

unitins • análise e desenvolvimento de sistemas • 1º PeRÍodo 247


aula 5 • infoRmática e sociedade

Para atividade um, solicitamos a descrição sucinta do processo de globalização,


suas características visíveis durante o decorrer da história. Você deve ter escrito sobre
as muitas características que contribuíram para o encurtamento de distâncias, desde
os meios de transporte, podendo ter citado desde a roda, passando pelas carroças
e aeronaves e indo até o telefone e a própria internet. Ao citar a globalização da
economia, você apresentou um mercado de trabalho mais exigente e nervoso, osci-
lando de acordo com flutuações da moeda e acontecimentos mundiais.
Na atividade dois, a resposta correta é a letra (d). Logo, apenas a afir-
mação III está correta. Alternativa I está incorreta, pois o empregado de hoje
precisa ter conhecimento e perícia altamente apurados sobre as atividades que
ele exercerá. Alternativa II também está incorreta, uma vez que pessoas com
conhecimento e experiência na área de desenvolvimento de sistemas, indepen-
dentemente de possuírem diploma de graduação, também são absorvidas pelo
mercado de trabalho de informática, conforme constatado atualmente.
A internet causou grandes mudanças no contexto do mercado de trabalho,
exigindo do trabalhador diversos posicionamentos. Que posicionamentos são
estes? Justifique sua resposta.
Na atividade três, foi solicitado que você justificasse os posicionamentos,
também citados por você, exigidos pelo novo mercado de trabalho alterado pela
internet. Você deve ter se posicionado sobre características necessárias, hoje, ao
profissional da informação, como alto nível de empregabilidade, capacidade
para utilizar os recursos de comunicação e informação, necessidade de estar
sincronizado com os acontecimentos mundiais, dentre outros.
Finalmente, na atividade quatro, a resposta correta é a letra (a), ou seja,
todas as alternativas estão corretas, exceto a alternativa III, pois o “domínio
de técnicas de agricultura” não é uma característica necessária para um traba-
lhador da informação dos centros urbanos.
Uma vez que você respondeu com sucesso a todas as atividades, os objetivos
desta aula (identificar o comportamento e a direção de projeção do mercado de
trabalho dentro de uma economia global e descrever os novos desafios exigidos
pelo mercado de trabalho da sociedade do século XXI, dentro do contexto das
TIC, ao trabalhador do paradigma da informação) foram atingidos.

CASTELLS, M. A sociedade em rede – a era da informação: economia, socie-


dade e cultura. São Paulo: Paz e Terra, 2002. v.1
______. A galáxia da Internet: reflexões sobre a Internet, os negócios e a socie-
dade. Rio de Janeiro: Jorge Zahar, 2003.

248 1º PeRÍodo • análise e desenvolvimento de sistemas • unitins


aula 5 • infoRmática e sociedade

DRUCKER, P. O futuro já chegou. São Paulo: Exame, 2000.


GRAEML, K. S. Percepção de clientes com relação à eficácia da experiência em
comércio eletrônico. 118 p. Dissertação (Mestrado em Engenharia de Produção)
– Programa de Pós Graduação em Mídia e Conhecimento, Universidade Federal
de Santa Catarina, Florianópolis, 2001.
QUINTELA, H. M. Tecnologia de informação no modelo de estabilidade dinâ-
mica. Anais do XVII ENEGEP (Encontro Nacional de Engenharia de Produção)
– Gramado, 1997.
REGO, Luiz Carlos Moraes. Tecnologias que mudam nossa vida. 2007.
SCHAFF, A. A sociedade informática: as conseqüências sociais da segunda revo-
lução industrial. São Paulo: Brasiliense, 1995.

Estudaremos sobre a situação dos vários setores da sociedade (educação,


lazer, trabalho e serviços) e do cotidiano do cidadão (onde e como sua vida está
alterada, se comparada ao modo de vida do homem em décadas passadas)
diante do processo de informatização da sociedade, encabeçado sob as dire-
trizes das tecnologias da informação e da comunicação.

Anotações

unitins • análise e desenvolvimento de sistemas • 1º PeRÍodo 249


aula 5 • infoRmática e sociedade

250 1º PeRÍodo • análise e desenvolvimento de sistemas • unitins


aula 6 • infoRmática e sociedade

Aula 6
Cyberprofissional,
cyberoportunidades

Todas as pessoas têm disposição para trabalhar cria-


tivamente. O que acontece é que a maioria jamais se
dá conta disso.
(Truman Capote)

Esperamos que, ao final desta aula, você seja capaz de:


• identificar, ao longo de dois paradigmas, a evolução das exigências
profissionais;
• citar as oportunidades de trabalho para o cyberprofissional.

Para acompanhar esta aula, você deve estar por dentro dos assuntos estu-
dados nas aulas passadas. Entender às exigências do mercado de trabalho
significa estar de “guarda alta”, preparado para encarar os desafios que o
mesmo nos propõe a cada dia. Saiba que o mercado de informática está de
portas “escancaradas”. Hoje, praticamente, não há risco de desemprego para o
profissional da informação, mas, os grandes salários e menores cargas horárias
estarão reservados para aqueles que melhor exercerem suas competências, seu
nível de empregabilidade, como profissional da informação.

Nesta aula, caminharemos entre as características do profissional braçal,


o operário e o profissional da informação, o cyberprofissional. Com relação à
área de informática e tecnologias em análise e desenvolvimento de sistemas,
identificaremos as oportunidades que o mercado oferece para aqueles com perfil
empreendedor e comercial, para aqueles que almejam um cargo público em
uma organização governamental e, também, para os que desejam o contínuo
aperfeiçoamento acadêmico, traçando, assim, carreira na área científica.

unitins • análise e desenvolvimento de sistemas • 1º PeRÍodo 251


aula 6 • infoRmática e sociedade

6.1 Trabalhadores do antigo paradigma


Arriscamo-nos dizer que seu pai e sua mãe nasceram ou são habituados
ao paradigma sócio econômico da era industrial (já estudado anteriormente),
dos trabalhadores operários. Ousamos um pouco mais, mas não erraremos
na maioria dos casos atuais, afirmando que nós e você, caro aluno, estamos
muito familiarizados com este modelo, por convivermos com pessoas, propa-
gandas, filmes, desenhos que retratam características deste paradigma: operá-
rios, construtores, trabalhadores de fábricas, cortadores de cana, costureiras,
artesãos, etc.
As Revoluções Industriais marcaram a formação de trabalhadores operá-
rios. Para cada avanço que a revolução galgava, novos empregos e funcio-
nalidades eram criados, uma vez que novas necessidades apareciam movidas
pelo sentimento de obtenção de lucro e espírito empreendedor daqueles que
possuíam o capital.
A revolução do carvão e do ferro possibilitou uma nova forma de energia
e uma nova matéria-prima para a época. Assim, foi uma época para formação
de carvoeiros, mineiros, ferreiros, abastecedores de caldeiras (lembre-se das
caldeiras do navio TITANIC, que virou filme? Os (infelizes) homens estavam até
bem empregados no navio...), dentre outros. Tal revolução exigiu diversos novos
empregos e perfis de profissionais: a máquina de descaroçar algodão exigiu a
existência do profissional operador de descaroçadeira de algodão, a máquina
de tear, por sua vez, exigiu o técnico em operações de máquinas de produção de
tecidos. Assim, vemos que o artesão que queria sobreviver, deveria tornar-se um
operário ou abandonar sua oficina e abrir uma fábrica.
A mistura do carvão com o ferro resultou em navios e locomotivas a vapor,
emprego para maquinistas, navegantes, alimentadores de caldeiras. Também foi
inventado o telefone e o telégrafo: empregos para comutador de linhas telefô-
nicas (“alô, telefonista?”) e operador de telégrafo. As partículas das atividades
da sociedade estavam começando a acelerar. A idéia de que “hoje em dia, a
gente tem que se atualizar sempre, senão fica para trás” começa a ficar clara.
As pessoas precisariam se especializar em alguma área, para garantir um
emprego, uma forma de subsistência e melhor qualidade de vida.
Mais um passo à frente no paradigma do trabalho operário e nos deparamos
com a revolução dos derivados de petróleo e da eletricidade (novas formas de
energia, no lugar do carvão) e do aço (nova matéria prima, no lugar do ferro).
Agora sim, não há retorno: o trabalhador que quiser sobreviver, terá que se
especializar. Com o boom dos inventos, aparecem as estradas de ferro, ofere-
cendo, automaticamente, empregos especializados para metalúrgicos e “cons-
trutores de trilhos”, os automóveis e aviões, gerando milhares de novos postos
super-especializados: desde o apertador do parafuso ZX-021 até o colocador de
trinco da porta de carro modelo XYZ. As comunicações evoluem para o telégrafo

252 1º PeRÍodo • análise e desenvolvimento de sistemas • unitins


aula 6 • infoRmática e sociedade

wireless e o rádio, clamando por empregados capazes de preencher cargos de


radialista, técnico em eletrônica de rádio e telégrafo. A própria mecanização
da agricultura aposenta as enxadas e assume o uso de colheitadeiras, tratores
e máquinas de arar. Agora, até o trabalhador rural que preferira ficar “quieto
no seu canto” está com seu emprego ameaçado pela industrialização que se
propagou como uma fumaça em meio a um recinto.
É dentro das influências deste contexto que inserimos nossos avôs e avós,
nossos pais e a nós mesmos. Você, aluno, mesmo podendo estar trabalhando
dentro do antigo modelo, já possui contato com a tecnologia, através deste curso
de tecnologia em análise e desenvolvimento de sistemas. Os trabalhadores da
atualidade, portanto, estão tendo, cada vez mais, noção das características do
novo paradigma em que estão inseridos.
O trabalhador operário está sujeito a superespecialização em um único
tipo de atividade. O parafusador de dobradiça não poderá aprender a soldar
dobradiças, pois seu trabalho é apenas parafusar. Logo, fica claro que o mesmo
corre o risco de desemprego, caso haja uma superlotação do mercado com
operários parafusadores de dobradiças. Observe, desse modo, como o nível de
empregabilidade de tal trabalhador é pequeno, estando ele exposto ao desem-
prego, ao menor sinal de instabilidade ou saturação do mercado de sua área.
Outro problema observado é alienação do trabalhador: não lhe é permitido
criar novas tecnologias de como parafusar dobradiças mais eficientemente, ou
como irrigar melhor o solo, ou como extrair mais metais preciosos do solo com
menos água e recursos, ou dar idéias de novos produtos para a fábrica, fazenda
ou usina. Sua rotina fica atrelada a um número determinado de horas por dia,
fazendo um único de tipo de trabalho, resumido a alguns ou até mesmo um
único movimento. Ideal para quem gosta de rotina e pensa apenas em manter
a família alimentada, sobrevivendo. Entretanto, esta que já não é a realidade
de muitos que habitam países desenvolvidos ou em desenvolvimento, em centros
urbanos, influenciados por todos os lados pelas facetas do paradigma da infor-
mação e da comunicação.

6.2 Trabalhadores do novo paradigma


O trabalhador do paradigma da informação e da comunicação é aquele que
recebe uma pressão digital para se projetar no mercado de trabalho. A pressão
digital pode ser percebida. Quando, da mesma forma, como já anteriormente
citado, usamos a famosa frase: “hoje em dia, a gente tem que se atualizar sempre,
senão fica para trás”. Desta vez, a frase ficaria algo em torno de: “hoje em dia,
quem não souber usar o computador e a internet, falar mais de um idioma, ter
no mínimo o ensino superior, será deixado para trás”. A pressão digital é clara,
assusta, convencendo, a cada dia, muitos dos que ainda resistem ao uso da infor-
mática em sua organização pessoal e, principalmente, profissional.

unitins • análise e desenvolvimento de sistemas • 1º PeRÍodo 253


aula 6 • infoRmática e sociedade

O Mercado de trabalho atual é marcado pela alta competitividade entre as


organizações influenciadas e de comportamento alterado pelas inovações das
tecnologias de informação e comunicação (computadores, internet, pendrives,
CPUs, notícias em tempo real, etc.). Tal mercado pressiona o cidadão a se projetar
como um “profissional da informação”. Nina (2006, p. 15) explica que
com o surgimento dessas inovações, a informação ficou facil-
mente disponível para todos, no sentido de que não há mais
distâncias intransponíveis para a comunicação. Existe a diversi-
dade de acesso à informação, o que provoca alteração no seu
valor. Contudo, é o seu uso que determina a disseminação da
informação, quando então a acrescenta a uma situação ou a uma
idéia que a valoriza e a internaliza como conhecimento para uma
organização, processo, indivíduo ou grupo, ou seja, quando o
usuário assimila a informação, tornando-a parte de si.

Assim, o profissional da informação acaba por incorporar, como extensões


de seu corpo, o uso das muitas tecnologias da modernidade.

Saiba mais

Figura 1 Tecnologias como extensões de nosso corpo.


Vale, aqui, lembrar sobre a Coréia
do Sul, país que obteve grandioso salto
em seu desenvolvimento, ultrapassando
o Brasil, devido, dentre muitos investi-
mentos, ao fato de investir na educação,
na perspectiva do novo paradigma.
Por exemplo: Crianças Sul Coreanas,
ainda no Jardim da infância, entram em
contato com máquinas fotográficas digi-
tais e outros apetrechos que são fruto do
novo paradigma da informação. Não
há dúvida que tal contato contribui gran-
Fonte: <http://crossings.tcd.ie/issues/1. 2/Stelarc/Picture1a.jpg>.

254 1º PeRÍodo • análise e desenvolvimento de sistemas • unitins


aula 6 • infoRmática e sociedade

demente para a potencialização do indivíduo como profissional da informação


(WEINBERG, 2005).

Figura 2 Crianças educadas dentro do novo paradigma.

Fonte: Revista Veja. Disponível em: <http://veja.abril.com.br/160205/p_060.html>.

Neste paradigma, o operário deixa de realizar movimentos repetitivos,


sendo constantemente desafiado a pensar, buscar novas maneiras de desem-
penhar uma tarefa, ou melhores formas de programar um sistema, buscar
por novas tecnologias de desenvolvimento de projetos, aplicativos e metas
estratégicas para o crescimento da companhia onde trabalha. Se for tímido,
recomenda-se fazer um curso de oratória ou teatro. Se for muito explosivo,
recomenda-se fazer um curso de liderança e relacionamento interpessoal. Se
for possuidor de grande conhecimento (de linguagens de programação, de
como se executar vários processos), mas não sabe repassar a informação para
os demais, recomenda-se realizar um curso de didática e metodologias de
instrutoria. A pressão simplesmente existe e, se a pessoa se negar a enxer-
gá-la, deixando de tomar atitudes de atualização e educação continuada,
naturalmente, seu nível de empregabilidade irá cair, e o próprio mercado irá
rejeitá-lo, com o tempo.
Nina (2006, p. 176), em sua tese, apresenta diversas idéias centrais
inerentes às características necessárias ao profissional da informação, com
base em uma pesquisa realizada com cidadãos que convivem dentro do
contexto da informação. Algumas destas idéias estão aqui destacadas na
tabela a seguir:

unitins • análise e desenvolvimento de sistemas • 1º PeRÍodo 255


aula 6 • infoRmática e sociedade

Tabela Idéias centrais sobre algumas características do profissional de


informação, conforme constatado por Nina (2006).

ASSUNTO IDÉIAS CENTRAIS


a) Ter habilidade, criatividade, flexibilidade na profissão.
b) Senso crítico, saber ouvir além de falar.
c) Responsabilidade.

Sobre competência d) Conhecimento do profissional sobre a própria


profissão.
e) Ter imaginação e criatividade de utilizar os seus
conhecimentos teóricos na prática.
f) E planejamento e execução.
a) Ser bem preparado.
b) Fazer uma auto análise, sabendo que atender
pessoas frente a frente é mais difícil. Em todo caso,
escolher a área que é mais fácil para desenvolver
sua capacidade.
Sobre as atitudes c) Ter discernimento daquilo que se está fazendo.
necessárias ao d) Leitura e atualização, gosto pela leitura, estar se
profissional, para que atualizando, a fim de sempre estar sincronizado
aja com competência com os acontecimentos locais, regionais, nacionais
e mundiais.
e) Bastante criatividade, equipamento, atualização,
audácia de ir mais adiante, de tomar iniciativa inde-
pendente de esperar.
f) Responsabilidade, organização e conhecimento.
a) Bom relacionamento entre os profissionais.
b) Criatividade, renovação. A criatividade é essencial
para possibilitar trabalhos com recursos limitados.
c) Mostrar interesse nas atividades em desenvolvimento e
motivar seus colegas de trabalho.
Sobre o ambiente
de trabalho d) Foco, estar centrado. Conhecimento de outras línguas.
Tato nas relações de atendimento ao público: paci-
ência, educação, ser objetivo e ter discernimento.
e) É fundamental ter-se o conhecimento de informática,
dos sistemas de informação, para melhor interagir no
ambiente de trabalho.

Neste paradigma, o conceito da palavra operário acaba por se transformar


em algo depreciativo. Ser profissional da informação é muito mais do que
realizar uma única atividade: é ser versátil, possuir conhecimentos interdiscipli-
nares, capacidade de se relacionar com os demais colegas e exercer liderança
de grupo, sendo criativo e pró-ativo no exercício de suas competências.

256 1º PeRÍodo • análise e desenvolvimento de sistemas • unitins


aula 6 • infoRmática e sociedade

Saiba mais

6.3 Cyberoportunidades para cyberprofissionais


Oportunidades, “há vagas”, “precisa-se”, “contrata-se”. Expressões assim são
motivos de alegria para muitos profissionais que lutam por um emprego, por esta-
bilidade, por cumprir metas pessoais e profissionais. Sabemos, entretanto, que o
desemprego é uma realidade em um país em desenvolvimento, tal qual o Brasil,
principalmente se algumas áreas de trabalho estão saturadas pelas ofertas de
mão-de-obra, por exemplo, vagas para vendedor, porteiro, office-boy, etc. Até
mesmo áreas que exigem maior qualificação, como secretariado, veterinária,
direito, administração, publicidade, correm o risco de entrar no gargalo da satu-
ração, afetando os que optaram por tais áreas, dependendo do contexto econô-
mico e das demandas por serviços que determinada região urbanizada do país
possa requerer. Para os profissionais da informação, especificamente, aqueles
que, como você, optaram pela área da TI (Tecnologia da Informação), a informá-
tica, tecnologias em análise e desenvolvimento de sistemas, engenharia de redes
de comunicação, ciência da computação, sistemas de informação, processamento
de dados, dentre outros, a situação da oferta de empregos, hoje, é muito confor-
tável, claro, para aqueles que demonstrarem o mínimo de qualificação na área.

Muitos que vêem a área de TI como sendo enfadonha e complicada, tornando-se uma
profissão exclusivamente para “Nerds
“Nerds
Nerds”,
”, acabam perdendo uma ótima oportunidade de
qualificação e emprego, além de enganarem-se profundamente no quesito da interdiscipli-
naridade da TI: é possível associar a ela as mais diversas áreas, desde a automação da
fabricação de palitos de fósforo, cultura de abelhas, seqüenciamento genético e estudos
de curas para doenças, previsualizações do “antes e depois” de salões de beleza e medi-
cina estética, jogos eletrônicos e sistemas de comércio eletrônico de utensílios e enfeites
feitoss a partir do capim dourado (produto típico do estado do Tocantins) às viagens
feito

unitins • análise e desenvolvimento de sistemas • 1º PeRÍodo 257


aula 6 • infoRmática e sociedade

submarinas e espaciais, com direito a fotos das profundezas dos oceanos, da superfície
lunar e marciana, bem como dos demais planetas que forem explorados ou capturados
pelas lentes de satélites computadorizados. De acordo com Cardoso (2008), a palavra
“desemprego” não existe no dicionário da tecnologia da informação. Afirma, ainda, para
felicidade de muitos candidatos a um cargo público, que a relação entre candidato vaga
é de um para um. O autor enfatiza a agressividade das empresas de TI, no momento
de buscar um novo talento. Por exemplo: a grande companhia IBM, desde 2007, firma
parcerias com escolas do ensino médio para que estas possam incluir em seus currículos
aquelas disciplinas que abordam as suas necessidade de mão-de-obra.

Ter uma relação de emprego de “um para um” significa, para o profissional
de TI, risco praticamente inexistente de desemprego. Você, talvez, já possa cons-
tatar essa “feliz” realidade, por exemplo, quando alguém, sabendo que você
está cursando TADS (Tecnologias em Análise e Desenvolvimento de Sistemas),
logo se aproximando, pergunta-lhe se você pode desenvolver um “programinha”
para controlar tal processo (padaria, escolinha, loja de confecção, “home page”,
etc.). Tal fenômeno é bom para o trabalhador, servindo de incentivo para que se
recicle e continue estudando e se aperfeiçoando nas áreas de TI, mas, também,
reflete uma necessidade do país de desenvolver-se nesta área.
Na área privada, uma gama enorme de oportunidades existem, sítios de
grandes empresas como Google, IBM, Microsoft, Sun, Xerox, etc., chegam até
fazer propaganda para atrair o profissional até o seu domínio. Grupos de discussão
sobre tecnologias, como o Java-br, ou de desenvolvedores C++, Delphi, PHP,
“.Net” e outras tecnologias estão recheados de informações sobre a tecnologia
e, freqüentemente, propostas de emprego em diversas empresas que oferecem,
até urgentemente, vagas para profissionais de TI que dominam a tecnologia em
discussão no grupo. Sobre este aspecto, Tossulino (2008) declara que, na reali-
dade, é o mercado que se encontra em rápido crescimento e, por isso, requer,
cada vez mais, profissionais qualificados, experientes e efetivos. O autor também
se refere à concorrência e à competição, afirmando que, atualmente, estas não
se dão apenas no sentido de se buscar mais clientes, mas, também, de se buscar
profissionais. Assim, as empresas que oferecem a melhor política de benefícios,
bons ambientes e condições de trabalho, plano de cargos e salários e uma ótima
remuneração são aquelas que ganham a disputa pelos melhores profissionais.
Mesmo assim, muitos jovens “cyberempreendedores” preferem abrir seu próprio
negócio, a ter um emprego em empresas desse porte, e, assim, causar sua própria
disrupção no mercado (lembre-se de nossos estudos sobre os impactos das TIC na
economia). Vale à pena lembrar que grandes empresas nasceram de uma maneira
informalmente conhecida como “fundo de garagem”: Jovens detentores do “cyber-
conhecimento”, com pouco ou nenhum capital, e de índole empreendedora, produ-
zindo seu próprio produto em “secreto” e divulgando-o na hora em que entenderem
estarem prontos para surpreender no mercado. São exemplos de empresas que

258 1º PeRÍodo • análise e desenvolvimento de sistemas • unitins


aula 6 • infoRmática e sociedade

nasceram assim: Microsoft, IBM, Cisco. Para não acharem que apenas estrangeiras
conseguem tal feito, citamos aqui a empresa brasileira Locaweb (www.locaweb.
com.br), hoje, grande empresa de hospedagem de sites. Ela começou em 1998
com duas pessoas e um servidor. Hoje, é referência em hospedagem de sites com
mais de 500.000 sites hospedados.
Na área governamental, existe enorme demanda por funcionários. Um
emprego público é uma opção bastante visada para pessoas que objetivam uma
carreira segura, sem a possibilidade de “surpresas” financeiras ou para aqueles
que pensam em constituir uma base, um degrau, onde pisarão antes de tentar
iniciativas mais ousadas, sendo, assim, uma sábia opção. No Brasil, milhões de
pessoas realizam concursos públicos, sendo grande parte delas, profissionais da
informação. A concorrência por vagas públicas de TI é grande. Queiroz (2008)
refere-se à alta concorrência por cargos de TI, declarando sobre um concurso reali-
zado recentemente, em 2005, da SERPRO – Serviço Federal de Processamento
de Dados, a concorrência era de 23.333 inscritos para 1.980 vagas, ou seja,
11,7 candidatos por vaga. Já na PRODESP – Companhia de Processamento de
Dados de São Paulo, em seu processo de seleção realizado em 2004, a concor-
rência foi de 30 pessoas por vaga, aproximando-se da disputada concorrência
do vestibular de medicina da USP (32,43 candidatos por vaga).
A figura a seguir mostra um panorama de algumas das muitas oportuni-
dades de TI na área pública, exemplificando algumas instituições que oferecem
vagas para diversos cargos, acompanhados de suas remunerações.

Figura 3 Programação de concursos, para 2008, de Instituições públicas.


Onde estão as oportunidades?
Instituições públicas que já programaram concursos em 2008
INSTITUIÇÃO VAGAS CARGOS SALÁRIOS (em reais)
SERPRO 700, sendo Analistas e técnicos 2.306,06 (analista) 1.325,03
(www.serpro.gov.br) 581 para profis- (técnico)
sionais de TI
MCT 338 Tecnólogos, pesquisadores e 2.119,46 (pesquisador)
(www.mtc.gov.br) analistas 1.571,45 (técnico) (1)
STF 84 Analista judiciário para infor- 5.484,08 (analista) 3.323,52
(www.stf.gov.br) mática e técnico judiciário para (técnico)
programação de sistemas
PROCERGS 37 Técnicos e analistas 3.330,70 (técnico com ênfase
(www.procergs.com.br) em JAVA) 1.285,23 (técnico
em operação)
CELEPAR Não definidas Técnico de Informática júnior e 2.201 (analista) 1.265
(www.celepar.pr.gov.br) Analista de Informática júnior (técnico)
(1) Podem ser incluídos, nos dois casos, 900 reais de gratificação. Pesquisadores podem ter uma remuneração maior, depen-
dendo do currículo. Profissionais com especialização têm um aumento de 27%, mestres, de 52,5% e doutores, de 105%.

Fonte: Queiroz (2008).

unitins • análise e desenvolvimento de sistemas • 1º PeRÍodo 259


aula 6 • infoRmática e sociedade

A área científica também apresenta muitos desafios. O Brasil oportuniza,


cada vez mais, especializações, mestrados e doutorados na área de TI. De
gerência de redes até inteligência artificial, de matemática computacional até
bioinformática, a gama de áreas de especialização é muito grande. Vagas para
professores e pesquisadores são oferecidas, bolsas de estudos e de iniciação e
científica estão disponíveis para aqueles que se dedicarem com afinco a ingressar
nesta área, que oferece muitas alternativas de trabalho e atuação.
Fica claro, assim, que as oportunidades profissionais estão em um hori-
zonte muito possível de ser tangido pelo cyberprofissional, o que inclui você,
caro aluno. Não basta saber realizar procedimentos repetitivos como backup
ou manutenção de uma rede de computadores, é preciso criatividade para
criar novos serviços, aplicativos, games, enciclopédias, sistemas e-commerce
e muitos outros componentes requisitados pelo mercado da informação e da
comunicação, o que significará a sua estabilidade dentro desta dinâmica área
tecnológica proveniente do novo paradigma da sociedade da informação,
presente desde o último século do último milênio. Com o estudo constante, a
reciclagem teórica e prática do conhecimento das tecnologias mais atuais de
informação e comunicação, o constante contato com outros profissionais para
o intercâmbio de práticas de desenvolvimento, será muito provável o êxito
na obtenção de uma promissora vaga de emprego, tanto em nível financeiro
quanto em nível de reconhecimento.

Nesta aula, traçamos as características de dois tipos de profissionais distintos,


protótipos de dois paradigmas. A frase de Truman Capote, citada no início da
aula, é um incentivo a você, propenso profissional da informação. Vimos as
oportunidades que o mercado oferece aos cyberprofissionais da área comercial,
governamental e acadêmica. O mercado de trabalho está cada vez mais compe-
titivo e exige posturas versáteis, recheadas de empregabilidade e criatividade.

1. Ao longo da história, os fatos foram delineando o perfil do trabalhador que


satisfaria as necessidades do mercado de trabalho. Considerando os dois para-
digmas anteriores ao da sociedade da informação, julgue os itens a seguir.
I. O uso do ferro para criação de locomotivas acabou por exigir novos
empregos, como o de agricultor, para carregar os vagões com produtos,
como a cana-de-açúcar e o algodão.
II. Os trabalhadores operários foram forjados, dentre vários elementos
definidos, pelas Revoluções Industriais.

260 1º PeRÍodo • análise e desenvolvimento de sistemas • unitins


aula 6 • infoRmática e sociedade

III. O trabalhador operário impactado pela Segunda Revolução Industrial


acabou por caminhar em direção a uma especialização focada em um
único tipo de atividade, o que, de certa forma, abafava sua capaci-
dade criativa.
IV. Ao longo das duas revoluções industriais, o trabalho do operário
foi migrando de uma atividade de subsistência para atividades que
proporcionaram o próprio desenvolvimento da indústria e de grandes
centros urbanos.
Assinale a alternativa correta.
a) Apenas as alternativas I, II e III estão corretas.
b) Apenas as alternativas II e III e IV estão corretas.
c) Apenas as alternativas I, III e IV estão corretas.
d) Todas as alternativas estão corretas.

2. Estudando sobre o trabalhador do novo paradigma, o da informação e da


comunicação, descreva em, no máximo, 15 linhas, quais as exigências que o
mercado requer deste novo trabalhador, em relação ao do antigo modelo.

3. O termo cyberprofissional é usado, aqui, para definir aquele profissional


que trabalha diretamente com as TIC. Sobre as oportunidades existentes, na
atualidade, para tal profissional, assinale a alternativa correta:
a) O Cyberprofissional precisa se reciclar constantemente, discutir novas
tecnologias, praticar o desenvolvimento ou implantação de sistemas e
serviços computacionais e sociabilizar-se adequadamente com a comu-
nidade tecnológica, para que, assim, esteja ao alcance das melhores
oportunidades do mercado.
b) O Cyberprofissional precisa se especializar em alguma área da tecno-
logia, a fim de obter um alto nível de conhecimento nesta, podendo,
assim, sobreviver décadas de alterações do mercado contemporâneo
sem se desatualizar.
c) Oportunidades de empregos na área governamental são muito visadas
por milhares de profissionais de TI, justamente por oferecer empregos
instáveis, com alto risco de perdas, mas também, de ganhos muito acima
da inflação.
d) Muitos profissionais de TI preferem abrir seu próprio negócio, no formato
de “empresa de garagem”, modalidade, esta, ideal para aqueles que já
possuem boa infra-estrutura, equipamentos e capital para investimento
em uma boa equipe de funcionários.

4. O mercado de trabalho oferece inúmeras oportunidades de emprego. Cite


quais, a seu ver, são as melhores oportunidades, hoje, nos múltiplos setores

unitins • análise e desenvolvimento de sistemas • 1º PeRÍodo 261


aula 6 • infoRmática e sociedade

do mercado da tecnologia da informação e comunicação. O que você tem


feito para merecer uma boa “cyberoportunidade”?

Na atividade um, a alternativa (b) está correta, ou seja, todas as afirmações


estão de acordo com o conteúdo exposto nesta aula, exceto a afirmação I, pois o
emprego de agricultor já existia muito tempo antes das Revoluções Industriais.
Para a atividade dois, você deve ter citado, rapidamente, como as revolu-
ções desenharam o perfil do trabalhador, exigindo que sua saída da postura
antiga de artesão para operário, assim como listado as características deste,
como um resultado de um conjunto de boas e más exigências típicas do
período, justamente para que você pudesse comparar com uma lista de carac-
terísticas exigidas do profissional da informação dos dias atuais, o que faz a
percepção clara das diferenças entre os perfis exigidos pelo paradigma do
trabalhador operário (marcado pelo trabalho braçal, repetição, rotina, etc.) e
do trabalhador da informação (marcado pelo trabalho intelectual, inovação,
criatividade, etc.).
A alternativa correta para a atividade três é a letra (a), pois as melhores
oportunidades estão ao alcance daquele profissional que se recicla constante-
mente. A alternativa (b) erra ao afirmar que um alto nível de estudo elimina a
necessidade de se reciclar durante muitos anos. Já alternativa (c) caracteriza,
erroneamente, o emprego público concursado como sendo instável quando, na
realidade, ele é estável. Por último, a alternativa (d) está errada por caracterizar
o “modelo garagem” apropriado para quem já possui infra-estrutura, recursos
humanos e capital financeiro.
Por fim, com relação à atividade quatro, esperava-se que você citasse
as oportunidades do mercado comercial, tais como empregos em grandes
empresas de tecnologias ou o empreendimento em negócios próprios, opor-
tunidades de empregos públicos, a partir de preparação e realização de
concursos públicos ou mesmo os desafios da área acadêmica e científica.
Você deve ter feito uma auto-análise, se enquadrando, assim, no mercado,
como profissional que está em condições de galgar um bom emprego, ou que
ainda precisa melhorar, se esforçando mais a partir da intensificação dos
estudos e do exercícios das técnicas de programação, a fim de alcançar um
boa cyberoportunidade.
Ao responder a todas essas atividades, analisando os novos desafios do
paradigma da informação e da comunicação, exigindo um novo perfil profis-
sional, você alcançou os dois objetivos propostos para esta aula: identificar, ao
longo de dois paradigmas, a evolução das exigências profissionais e citar as
oportunidades de trabalho para o cyberprofissional.

262 1º PeRÍodo • análise e desenvolvimento de sistemas • unitins


aula 6 • infoRmática e sociedade

CARDOSO, Rodrigo. Revista Istoé, edição 2002. Contratados desde a facul-


dade. Disponível em: <http://www.unicaieiras.com.br/revista/noticias4.htm>.
Acesso em: 18 ago. 2008.
FRASES E PENSAMENTOS. Disponível em: <http://www.blasterbit.com/
frases/>. Acesso em: 12 ago. 2008.
MCLUHAN, Marshall. Os meios de comunicação como extensões do homem.
São Paulo: Cultrix, 1979.
NINA, Renée Roseane Vaz. Profissional da Informação: o Bibliotecário e suas
representações das Competências Profissionais e Pessoais para atuar em biblio-
tecas. Florianópolis, 2006. Disponível em: <http://www.cin.ufsc.br/pgcin/
ReneeNina.pdf>. Acesso em: 12 ago. 2008.
QUEIROZ, Roberta. Há vagas no governo. 2008. Disponível em: <http://info.
abril.com.br/aberto/infonews/052008/26052008-5.shl>. Acesso em: 18 ago.
2008.
TOSSULINO, Guilherme. TI: há vagas, e muitas! 2008. Disponível em: < http://
www.tossulino.com/carreira/ti-ha-vagas-e-muitas/>. Acesso em: 18 ago. 2008.
WEINBERG, M. 7 lições da Coréia para o Brasil. Veja, n. 1892, 16 fev. 2005.
Disponível em: <http://veja.abril.com.br/160205/p_060.html>. Acesso em:
20 ago. 2008.

Como ficam as questões éticas e morais numa sociedade em que as formas


passageiras de associação são mais úteis às pessoas que as ligações de
longo prazo? Como decidimos o que tem valor duradouro em nós mesmos
numa sociedade impaciente, que se concentra no momento imediato? Como
buscar metas de longo prazo numa economia dedicada ao curto prazo?
Como é possível exercer lealdades e firmar compromissos mútuos em instituições
que vivem se desfazendo ou sendo continuamente reprojetadas? Esses serão
alguns assuntos tratados em nossa próxima aula.

Anotações

unitins • análise e desenvolvimento de sistemas • 1º PeRÍodo 263


aula 6 • infoRmática e sociedade

264 1º PeRÍodo • análise e desenvolvimento de sistemas • unitins


aula 7 • infoRmática e sociedade

Aula 7
O futuro da sociedade:
algumas questões

Nem a salvação nem a perdição residem na técnica.


Sempre ambivalentes, as técnicas projetam no mundo
material nossas emoções, intenções e projetos. Os
instrumentos que construímos nos dão poderes, mas,
coletivamente responsáveis, a escolha está em nossas
mãos (LÉVY, 2007, p. 16-17).

Esperamos, que, ao final desta aula, você seja capaz de:


• discutir a necessidade de se desenvolver uma nova postura ética e moral
face à consolidação da era da informação e do ciberespaço;
• analisar as condições de acesso à Internet e as ações que têm sido
desenvolvidas a fim de reduzir a exclusão digital.

Para participar e compreender bem esta aula, é importante que você pare
e reflita sobre os usos das tecnologias da informação e comunicação, notada-
mente, às questões relativas ao uso da Internet. É importante que você reflita
sobre as questões éticas que permeiam essa sociedade. É necessário também
que você analise as condições de acesso à Internet, bem como as ações que têm
sido desenvolvidas para possibilitar a inclusão digital.

Ao longo de nossas aulas, vimos o quanto o uso das tecnologias da infor-


mação e comunicação provocou mudanças na economia. Vimos também que
estas alterações afetaram as superestruturas: a arte, a cultura, a noção de
tempo e espaço. Nesta aula, discutiremos se todos têm tido acesso a essas
tecnologias e também como o uso das mesmas têm influenciado no caráter e
nos valores morais das pessoas. Não pretendemos dar respostas ou propor
soluções milagrosas para tais questões. Queremos, sim, baseados em alguns

unitins • análise e desenvolvimento de sistemas • 1º PeRÍodo 265


aula 7 • infoRmática e sociedade

autores, discutir sobre estes assuntos. Assim, optamos por estruturar nossa
aula da seguinte forma: inicialmente, discutiremos sobre a ética; em seguida,
faremos algumas análises a respeito da inclusão e exclusão digitais e finaliza-
remos com algumas proposições de como as transformações econômicas têm
afetado o caráter das pessoas.

7.1 A questão da ética na sociedade da informática


A ética é, sem dúvida, o tema do momento. Isto provavelmente se deve tanto
à desestabilização dos valores ou critérios tradicionais que pautavam as ações
humanas, quanto ao grande poder de manipulação, tanto da natureza quanto
do homem, mediante o uso dos recursos tecnológicos.

Saiba mais

Segundo Figueiredo (2007), a sociedade da informação introduziu novas


dimensões aos debates sobre ética. Uma delas diz respeito ao poder que essa
sociedade pode conferir a alguns dos seus agentes e, em contrapartida, das
dependências que pode criar sobre outros. Uma coisa da qual não podemos
nos esquecer é que todos os que ocupam posições de poder na Sociedade da
Informação deverão colocar especial cuidado em não abusar dessas posições,
em prejuízo dos seus concidadãos e de toda a sociedade. As implicações do
que acabamos de dizer são mais profundas do que, à primeira vista, poderiam
parecer: uma das características da sociedade da informação é, justamente, a
de entregar à generalidade dos cidadãos, e não apenas a alguns, uma parcela
de poder que antes eles não tinham. O poder para produzir grandes obras, tal
como o poder para provocar grandes prejuízos, está ao alcance de qualquer
um, e isso complica muito os nossos referenciais.
Segundo Turban; Potter; Reiner (2005), as questões éticas da aplicação das
Tecnologias de Informação nas organizações podem ser divididas em quatro
categorias: questões de privacidade: coleta, armazenagem e disseminação de
informações sobre indivíduos; questões de acurácia: autenticidade, fidelidade
e exatidão de informações coletadas e processadas; questões de propriedade:

266 1º PeRÍodo • análise e desenvolvimento de sistemas • unitins


aula 7 • infoRmática e sociedade

propriedade e valor da informação (propriedade intelectual); questões de acessibi-


lidade: o direito de acesso à informação e pagamento de taxas para acessá-la.
Você, futuro profissional da informática, certamente já se questiona acerca
de certas questões tais como: como se deve tratar da pirataria de software (cópia
de software protegido por copyright)? Quem é o responsável pela autenticidade,
fidelidade e exatidão das informações coletadas? Como podemos garantir que
as informações serão processadas corretamente e apresentadas de forma precisa
aos usuários? Que informações sobre as pessoas devem ser mantidas em bancos
de dados e qual o grau de segurança dessas informações? Estes são somente
alguns questionamentos. Com certeza, muitos outros o angustiam.
Segundo Masiero (2001), assim como muitas outras profissões, o profissional
da área de computação também deve seguir rígidos princípios éticos, pois se
trata de uma profissão altamente técnica, que o cliente geralmente não entende,
podendo facilmente ser enganado. Como os computadores e os sistemas compu-
tacionais estão cada vez mais presentes em nossas vidas, os problemas éticos
relacionados aos profissionais da computação aumentaram bastante nos últimos
tempos, assim como os casos envolvendo problemas éticos.
Ainda de acordo com Maisero (2001), as principais áreas envolvendo
problemas éticos são: o acesso não autorizado (hackers, vírus, etc.); a questão
da confidencialidade e da inviolabilidade da comunicação por computadores
(as mensagens eletrônicas); o conteúdo de sites da Web (pedofilia, racismo,
conteúdos perigosos ao ser humano, etc.) e a violação da confidencialidade e
da privacidade dos dados armazenados em um sistema computacional.
Face a tudo que foi colocado acima, percebe-se que é a ética da responsa-
bilidade que tem o maior peso sobre o profissional da informática, visto que não
somos o centro de tudo, mas sujeitos ligados a outros sujeitos.

7.2 A exclusão digital


A centralidade da Internet nas atividades econômicas, políticas, sociais
e culturais é indiscutível. Para Castells (2007), as tecnologias da informação
ampliam a capacidade das pessoas de progredir em seus conhecimentos, criar
e utilizar riqueza mais sabiamente de que as gerações anteriores. Lévy (2007)
evidencia a interação entre as novas tecnologias da informação e a educação e
constata o papel das novas tecnologias intelectuais que ampliam, exteriorizam e
alteram muitas das funções cognitivas humanas, o que ocasiona uma maior faci-
lidade na reprodução e transferência de informações, do aumento da memória,
das simulações, dentre outros aspectos, que acabam por aumentar o potencial
de inteligência coletiva humana. No entanto, não podemos nos esquecer de
que a proclamação da Internet como um meio de liberdade, produtividade e
comunicação não pode deixar de vir acompanhada da denúncia da “divisão
digital” gerada pela desigualdade a ela associada (CASTELLS, 2003). Dessa

unitins • análise e desenvolvimento de sistemas • 1º PeRÍodo 267


aula 7 • infoRmática e sociedade

forma, quando um cidadão não tem acesso às TIC, não se trata de ele simples-
mente não ter acesso a uma tecnologia, e sim a uma instituição social, resul-
tando, portanto, em exclusão social, somada às outras formas de desigualdade
e exclusão já existentes. Portanto, esta questão, aparentemente simples, torna-se
complicada se a submetermos a uma análise mais atenta.
Com relação ao acesso à Internet, que sem dúvida tem aumentado bastante
nos últimos anos, Castells (2003) afirma que há diferenças de acesso de acordo
com a renda da família, grupos étnicos, nível educacional e com o fato de ter ou
não deficiências físicas. Há também uma significativa disparidade no acesso à
Internet entre crianças de diferentes grupos de renda, o que poderá ter conseqü-
ências consideráveis para o futuro.
Segundo Albino (2008), pesquisas feitas pelo Instituto Brasileiro de Geografia
e Estatística (IBGE), em 2006, evidenciam a gravidade da exclusão digital no
Brasil e mostram que, apesar de todo o desenvolvimento tecnológico, as pessoas
das classes D e E, que correspondem à metade da população brasileira, não têm
acesso ao computador. Apenas 12,46% da população brasileira tem acesso
a computadores e somente 8,31% estão conectados à Internet (IBGE, 2006).
Ainda segundo ele, a maioria destes poucos incluídos digitais, cerca de 97%,
se concentra na área urbana, acentuando ainda mais o desnível e deixando
as zonas rurais praticamente na escuridão digital. Esses percentuais expõem o
cenário de exclusão digital em que vive grande parte da população brasileira.
Para que ocorra um verdadeiro processo de inclusão, há que se reconhecer
que muito mais do que consumidores as pessoas são cidadãos. Na palavras de
Lévy (2007, p. 238),
é preciso favorecer de todas as formas adequadas a facilidade
e a redução dos custos de conexão. Mas o problema do ‘acesso
para todos’ não pode ser reduzido às dimensões tecnológicas e
financeiras geralmente apresentadas. Não basta estar em frente
de uma tela, munido de todas as interfaces amigáveis que se possa
pensar, para superar uma situação de inferioridade. É preciso antes
de mais nada estar em condições de participar ativamente dos
processos de inteligência coletiva que representam o principal inte-
resse do ciberespaço. Os novos instrumentos deveriam servir priori-
tariamente para valorizar a cultura, as competências, os recursos e
os projetos locais, para ajudar as pessoas a participar de coletivos
de ajuda mútua, de grupos de aprendizagem cooperativa.

Portanto, para este autor, a luta contra a exclusão e as desigualdades deve


visar sempre ao aumento da autonomia das pessoas, evitando, em contrapar-
tida, o surgimento de novas dependências provocadas pelo consumo de infor-
mações ou de serviços de comunicação produzidos na maioria das vezes com
objetivos estritamente comerciais. É preciso que as conquistas alcançadas nos
últimos séculos sejam desfrutadas pelas gerações atuais. É este continuum que
faz com que a humanidade ascenda e se dignifique cada vez mais.

268 1º PeRÍodo • análise e desenvolvimento de sistemas • unitins


aula 7 • infoRmática e sociedade

A exclusão socioeconômica desencadeia a exclusão digital ao mesmo


tempo em que a exclusão digital aprofunda a exclusão sócio-econômica. A
inclusão digital deveria ser fruto de uma política pública com destinação orça-
mentária, a fim de que ações promovam a inclusão e equiparação de oportuni-
dades a todos os cidadãos. Assim, é preciso levar em conta pessoas com baixa
escolaridade, baixa renda, com necessidades especiais e idosas. Uma ação
prioritária deveria ser voltada às crianças e jovens, pois constituem a geração
do futuro.Dessa forma, a educação deve se tornar um aliado importante para
a inclusão digital.
No Brasil, são inúmeras as iniciativas em prol da inclusão digital, realizadas
tanto pelo Governo Federal por meio do Ministério de Ciência e Tecnologia,
quanto por Governos Estaduais e organizações não-governamentais. Dentre os
programas do Governo Federal podemos destacar: Casa Brasil, Computador
para Todos, Quiosque Cidadão, Programa Nacional de Informática na Educação,
Projeto Computadores para Inclusão, dentre outros.
Até aqui discutimos acerca das questões éticas que permeiam a sociedade
da informação e também alguns aspectos ligados à questão da inclusão social.
Neste último item de nossa aula, para finalizarmos a disciplina, apresenta-
remos algumas reflexões acerca das conseqüências pessoais do trabalho numa
economia marcada pela flexibilização e pelo uso acentuado das tecnologias
da informação e comunicação.

7.3 Conseqüências pessoais do trabalho na atualidade


A modernidade, com todos os avanços tecnológicos existentes, possi-
bilitou um desenvolvimento econômico e científico jamais visto pela huma-
nidade. Conforme vimos na aula anterior, o modo de produção capitalista
passou, nos últimos anos, por inúmeras transformações. Uma delas foi a
flexibilização da economia. A flexibilização ataca formas rígidas de buro-
cracia, e também os males da rotina cega. Pede-se aos trabalhadores que
sejam ágeis, abertos a mudanças a curto prazo, que assumam riscos conti-
nuamente, e que dependam cada vez menos de leis e procedimentos formais
(SENNETT, 2007). Assim, interessa ao sistema econômico um indivíduo
competente, hábil no manejo de conhecimentos e técnicas, maleável e adap-
tável ao capital. O mundo econômico exige competência, competitividade,
a busca de vantagens. Na moderna estrutura institucional, as empresas
buscam eliminar certos aspectos da burocracia, tornando-se organizações
mais planas e flexíveis. Ao invés de possuir uma estrutura piramidal, a admi-
nistração quer agora pensar nas organizações como redes. O computador
foi a chave em todo este processo e o setor de força de trabalho que mais
cresce lida com serviços de computação e processamento de dados. Nas
palavras de Sennett,

unitins • análise e desenvolvimento de sistemas • 1º PeRÍodo 269


aula 7 • infoRmática e sociedade

a especialização flexível serve à alta tecnologia; graças ao compu-


tador, é fácil reprogramar e configurar máquinas industriais. A
rapidez das modernas comunicações também favoreceu a espe-
cialização flexível, pondo dados do mercado global ao alcance
imediato da empresa. Além disso, essa forma de produção exige
rápidas tomadas de decisões, e assim serve ao grupo de trabalho
pequeno [...] O ingrediente de mais forte sabor nesse novo processo
produtivo é a disposição de deixar que as mutantes demandas do
mundo externo determinem a estrutura interna das instituições. Todos
esses elementos de responsividade contribuem para a aceitação da
mudança decisiva, demolidora” (SENNETT, 2007, p. 60).

Nos dias atuais, o mercado é dinâmico demais para permitir que as coisas
sejam feitas do mesmo jeito, ano após ano, ou que se faça a mesma coisa por um
longo tempo. Na opinião de Sennett (2007, p.82), as pessoas “são fortemente
impelidas a interpretar seu trabalho como refletindo sobre si mesmas, como indi-
víduos. O capitalismo de curto prazo corrói o caráter das pessoas, “sobretudo
aquelas qualidades de caráter que ligam os seres humanos uns aos outros, e
dão a cada um deles um senso de identidade sustentável” (SENNETT, 2007, p.
27). Para este autor, a flexibilidade causa ansiedade: as pessoas não sabem os
riscos que serão compensados, que caminhos seguir. O comportamento flexível
que possibilita sucesso aos trabalhadores está enfraquecendo seu caráter de um
modo que não há remédio prático.

Saiba mais

Para ele, o esquema de curto prazo das instituições modernas limita o


amadurecimento da confiança informal. Assim, as formas passageiras de asso-
ciação são mais úteis às pessoas que às ligações de longo prazo e fortes laços
sociais como a lealdade, deixaram de ser atraentes. As tarefas são feitas em
equipes que passam de tarefa em tarefa, havendo uma rotatividade constante
de pessoas, de forma que o distanciamento e a cooperação superficial são uma
blindagem melhor para lidar com as atuais realidades que o comportamento
baseado em valores de lealdade e serviço.
O sociólogo Ulrich Beck citado por Sennett (2007, p. 94) declara que na
“modernidade avançada, a produção social de riqueza é sistematicamente
acompanhada pelas produções sociais de riscos”. Assim, a instabilidade exis-

270 1º PeRÍodo • análise e desenvolvimento de sistemas • unitins


aula 7 • infoRmática e sociedade

tente nas organizações flexíveis impõe aos trabalhadores a necessidade de


“trocar de vasos”, isto é, correr riscos, com seu trabalho. Nesta perspectiva, tal
necessidade se torna uma virtude, na medida em que rejuvenescemos nossas
energias correndo riscos e, nos recarregamos continuamente.
A moderna cultura do risco é peculiar naquilo que não se mexer é
tomado como sinal de fracasso, parecendo a instabilidade quase
uma morte em vida. O destino, portanto, conta menos que o ato
de partir. Imensas forças sociais e econômicas moldam a insis-
tência na partida: o desordenamento das instituições, o sistema
de produção flexível – realidades materiais que se fazem elas
mesmas ao mar. Ficar firme é ser deixado de fora (SENNETT,
2007, p. 103).

Para Sennett, na moderna sociedade, estamos sempre começando de novo.


Parece que gostamos dos riscos. É como se os riscos envolvessem mais que simples-
mente oportunidade. É como se dissemos: é bom correr riscos! Em suas palavras:
“a decisão de partir, portanto, parece ser já uma consumação; o que importa é que
as pessoas sentem o “barato” estimulante quando decidem sair, partir” (SENNETT,
2007, p. 103). Às vezes, corremos riscos mesmo que os retornos sejam pequenos.
Todos esses comportamentos apresentados anteriormente levam as pessoas
a imaginarem que a dependência é vergonhosa. Assim, assumir riscos destina-se
muito mais a estimular a auto-afirmação que a submissão ao que existe. Até mesmo
nas relações íntimas, o medo de nos tornarmos dependentes de outra pessoa é resul-
tado da falta de confiança em nós mesmos. Por isso, ficamos sempre na defensiva.
De acordo com Sennett, em um mundo marcado pela indiferença, pela falta
de responsividade pelo outro, é comum nos perguntarmos:
quem precisa de mim? É uma questão de caráter que sofre um
desafio radical no capitalismo moderno. O sistema irradia indi-
ferença. Faz isso em termos dos resultados do esforço humano,
como nos mercados em que o vencedor leva tudo, onde há pouca
relação entre risco e recompensa. Irradia indiferença na organi-
zação da falta de confiança, onde não há motivo para se ser
necessário. E também na reengenharia das instituições, em que
as pessoas são tratadas como descartáveis. Essas práticas, óbvia
e brutalmente reduzem o senso de que contamos como pessoa,
de que somos necessários aos outros (SENNETT, 2007, p. 174).

Finalizando este material, gostaríamos de dizer que, mesmo no mundo onde


a flexibilização da economia parece fragmentar tudo e todos, onde tudo parece
ter duração efêmera, é preciso que o ser humano se encontre e se perceba como
portador de inúmeras qualidades e que, se vivemos em sociedade, é por que
todos somos necessários. Nas palavras de Castells (2007, p. 437),
se as pessoas forem esclarecidas, atuantes e se comunicarem em todo
o mundo; se as empresas assumirem sua responsabilidade social;
se os meios de comunicação se tornarem os mensageiros, e não
a mensagem; se os atores políticos reagirem contra a descrença e

unitins • análise e desenvolvimento de sistemas • 1º PeRÍodo 271


aula 7 • infoRmática e sociedade

restaurarem a fé na democracia; se a cultura for reconstruída a partir


da experiência; se a humanidade sentir a solidariedade da espécie
em todo o globo; se consolidarmos a solidariedade intergeracional,
vivendo em harmonia com a natureza; se partirmos para a explo-
ração de nosso ser interior, tendo feito as pazes com nós mesmos. Se
tudo isso for possibilitado por nossa decisão bem informada, cons-
ciente e compartilhada enquanto ainda há tempo, então, talvez, final-
mente possamos ser capazes de viver, amar e ser amados.

Desejamos que você, futuro profissional da informação, pense a respeito


do que Castells nos disse e que busque respostas e quem sabe soluções para os
inúmeros problemas que nossa sociedade enfrenta.

Na aula de hoje evidenciamos que as questões éticas merecem ser discu-


tidas face ao grande avanço das tecnologias da informação e comunicação
pois estas possibilitam um grande poder de manipulação, tanto da natureza
quanto do homem. Nesse sentido, mostramos a importância do profissional da
informática refletir sobre este assunto. Vimos também que o grande desenvolvi-
mento das tecnologias não é acessível a todos, havendo grande exclusão digital.
Finalizamos nossa aula com algumas proposições de como as transformações
econômicas têm afetado o caráter das pessoas.

1. Faça pesquisas na Internet, livros e revistas sobre o conceito de ética ao


longo da história. Construa um pequeno texto de aproximadamente 15
linhas, discutindo este conceito e sua importância no mundo atual.

2. Pesquise sobre programas e ações desenvolvidas pelo governo federal e


instituições não-governamentais no sentido de proporcionar a inclusão
digital. Uma pista importante é você pesquisar nos sítios do Ministério da
Comunicação, <http://www.idbrasil.gov.br> e do Ministério da Educação,
<http://www.mec.gov.br>.

3. Nesta aula, discutimos sobre ética, voltando mais especificamente para as


questões que envolvem os profissionais da informática. Sobre este assunto
leia as sentenças a seguir e assinale a alternativa correta.
a) Segundo Masiero, o profissional da informática, por ser extremamente
técnico, não necessita se preocupar com princípios rígidos da ética.
b) Várias devem ser as preocupações dos profissionais da informática, no
entanto, as questões de confidencialidade e de privacidade dos dados arma-
zenados em um sistema computacional não fazem parte deste contexto.

272 1º PeRÍodo • análise e desenvolvimento de sistemas • unitins


aula 7 • infoRmática e sociedade

c) Segundo Figueiredo, a sociedade da informação impediu que surgissem


novos debates sobre a ética.
d) Segundo Turban, Potter e Reiner, as questões éticas da aplicação das
Tecnologias de Informação nas organizações podem ser divididas em quatro
categorias: questões de privacidade, de propriedade e de acessibilidade.

4. Apesar do grande avanço das tecnologias da informação e comunicação,


é grande o número de excluídos digitais. Acerca deste assunto, leias as
assertivas abaixo, e logo após, assinale a alternativa correta.
I. No Brasil, inexistem as iniciativas para a inclusão digital tanto
no âmbito federal, estadual e municipal quanto das organizações
não-governamentais.
II. A exclusão digital independe da exclusão socioeconômica.
III. Para que ocorra um verdadeiro processo de inclusão, há que se reco-
nhecer que muito mais do que consumidores as pessoas são cidadãos.

a) Todas as assertivas estão corretas.


b) Somente as assertivas I e II estão corretas.
c) Somente a assertiva III está correta.
d) Somente as assertivas I e III estão corretas.

Na atividade um, você percebeu que a ética é uma ciência normativa do


comportamento humano, visando tanto ao bem individual quanto ao comum,
ou seja, são normas e regras de conduta que orientam as ações humanas.Viu
também que não existe um conceito fechado sobre a ética e que vários pensa-
dores, em diferentes épocas, abordaram especificamente assuntos sobre a ÉTICA:
os pré-socráticos, Aristóteles, os Estóicos, os pensadores Cristãos (Patrísticos,
escolásticos e nominalistas), Kant, Espinoza, Nietzsche, Paul Tillich, etc.
Na atividade dois, com certeza, ao visitar os dois sítios citados como refe-
rência (e outros) você deve ter percebido que muitos projetos do Ministério da
Comunicação estão ligados aos projetos criados pelo ministério da Educação,
em que todas estas ações estão relacionadas ao Plano de Desenvolvimento da
Educação (PDE). Você deve ter visto alguns projetos vinculados ao Plano de
Desenvolvimento da Educação, tais como o Proinfo, Inclusão digital, Conteúdos
Educacionais. Você notou também que há a preocupação com a criação de
Telecentros em várias regiões do país e conheceu o Programa GESAC que tem
como premissa o incentivo do uso de softwares (inclusive aplicativos) e sistemas
operacionais, cujas licenças permitam livremente a execução, estudo, alteração,

unitins • análise e desenvolvimento de sistemas • 1º PeRÍodo 273


aula 7 • infoRmática e sociedade

cópia e distribuição do produto, sem restrições, impedimentos ou ônus de quais-


quer espécies. Essas são apenas algumas pistas, não temos dúvida de que sua
pesquisa foi muito além do que colocamos aqui.
Na atividade três, a resposta correta é a (d). Segundo os teóricos Turban,
Potter e Reiner, as questões éticas da aplicação das Tecnologias de Informação
nas organizações podem ser divididas em quatro categorias: questões de priva-
cidade, de acurácia, de propriedade e de acessibilidade. A (a) está incorreta,
pois segundo Masiero (2001), assim como muitas outras profissões, o profis-
sional da área de computação também deve seguir rígidos princípios éticos,
pois se trata de uma profissão altamente técnica, que o cliente geralmente não
entende, podendo facilmente ser enganado. A (b) também está incorreta já que
dentre as várias de preocupações dos profissionais da informática, incluem-se
aquelas ligadas à confidencialidade e privacidade dos dados armazenados em
um sistema computacional. A letra (c) está incorreta, já que Figueiredo afirma
que a sociedade da informação suscitou novos debates sobre a ética.
Na atividade quatro, a resposta correta é a (c). A assertiva I está incorreta,
pois no Brasil são inúmeras as iniciativas em prol da inclusão digital, realizadas
tanto pelo governo federal por meio do Ministério de Ciência e Tecnologia
quanto por governos estaduais e organizações não-governamentais. A assertiva
II está incorreta: a exclusão socioeconômica desencadeia a exclusão digital, ao
mesmo tempo em que a exclusão digital aprofunda a exclusão socioeconômica.
A assertiva III está correta já que para que ocorra um verdadeiro processo de
inclusão deve-se reconhecer que muito mais do que consumidores as pessoas
são cidadãos, portadores de inúmeros direitos.

ALBINO, João Pedro. Exclusão digital: algumas reflexões. Disponível em:


<http://cecemca.rc.unesp.br/cecemca/curso_ead/200806_inclusao_digital/
Exclusao_Digital_JPALBINO.pdf>. Acesso em: 24 ago. 2008.
CASTELLS, Manuel. A galáxia da internet – reflexões sobre a internet, os negó-
cios e a sociedade. Rio de janeiro: Jorge Zahar, 2003.
______. Fim de milênio: a era da informação – economia, sociedade e cultura.
4. ed. São Paulo: Paz e Terra, 2007. v. 3.
FERREIRA, Aurélio Buarque de Holanda. Minidicionário da Língua Portuguesa.
Rio de Janeiro: Nova Fronteira, 1985.
FIGUEIREDO, Antônio Dias. Ética, Democracia e Cidadania Digital: reflexões para
uma sociedade da informação. Colóquio “Ética e Sociedade da Informação”
APDSI, 21 nov. 2007. Disponível em: <http//www.apdsi.pt/getfile.php?id_
file=930>. Acesso em: 25 ago. 2008.

274 1º PeRÍodo • análise e desenvolvimento de sistemas • unitins


aula 7 • infoRmática e sociedade

LÉVY, Pierre. Cibercultura. 2. ed. 6. reimp. São Paulo: 34, 2007.


MASIERO, Paulo Cesar. Ética em computação. São Paulo: Edusp, 2001.
SENNETT, Richard. A corrosão do caráter: conseqüências pessoais do trabalho
no novo capitalismo.
TURBAN, Efraim; POTTER, Richard E.; RAINER, Rex Kelly. Administração de
tecnologia da informação: teoria e prática. Rio de Janeiro: Elsevier, 2005.

Anotações

unitins • análise e desenvolvimento de sistemas • 1º PeRÍodo 275


aula 7 • infoRmática e sociedade

276 1º PeRÍodo • análise e desenvolvimento de sistemas • unitins


EQUIPE UNITINS
Organização de Conteúdos Acadêmicos Carlos Henrique Corrêa Tolentino

Coordenação Editorial Maria Lourdes F. G. Aires

Revisão Lingüístico-Textual Sibele Letícia Rodrigues Oliveira Biazotto

Gerente de Divisão de Material Impresso Katia Gomes da Silva

Revisão Digital Helena Carolina Costa e Lima Prestes

Projeto Gráfico Irenides Teixeira


Katia Gomes da Silva
Ilustração Geuvar S. de Oliveira

Capas Igor Flávio Souza

Equipe EADCON
Coordenador Editorial William Marlos da Costa

Assistentes de Edição Ana Aparecida Teixeira da Cruz


Janaina Helena Nogueira Bartkiw
Lisiane Marcele dos Santos
Programação Visual e Diagramação Denise Pires Pierin
Kátia Cristina Oliveira dos Santos
Monica Ardjomand
Rodrigo Santos
Sandro Niemicz
William Marlos da Costa
Este caderno de Algoritmos e Programação tem o objetivo de auxiliar
você no início da atividade com programação, que é uma das mais impor-
tantes no contexto do curso de Tecnólogo em Análise e Desenvolvimento de
Sistemas.
Nesta disciplina, estudaremos a Linguagem C, conhecida por ser uma
linguagem poderosa, robusta, flexível e madura. Além disso, é muito utilizada
e conceituada no meio educacional, didático e também comercial.
A atividade de programação pode ser entendida como uma simples

Apresentação
tradução de algoritmos para uma linguagem que o computador possa
entender. Mas, para isso, é preciso conhecer e dominar conceitos importantes
relativos à programação, de maneira geral, e também aspectos da linguagem
utilizada.
Qualidades como atenção, organização e persistência são importantes
para um programador. Essas qualidades em conjunto com o poder e a simpli-
cidade da linguagem C podem fazer com que, ao final desta disciplina,
sejamos considerados programadores, ainda que iniciantes.
Serão abordados nas sete aulas os principais conceitos dessa linguagem
para que, a partir dos conteúdos trabalhados, você possa alçar vôo com as
próprias asas e trilhar os caminhos da programação em linguagem C.
Bom trabalho!
Prof. Carlos Henrique Corrêa Tolentino
EMENTA
Programação em Linguagem C. Estruturas de dados homogêneas e
heterogêneas. Modularização de Algoritmos.

OBJETIVOS
• Introduzir a atividade de programação.
Plano de Ensino

• Desenvolver aplicações simples utilizando a linguagem C.

CONTEÚDO PROGRAMÁTICO
• Conceitos básicos da linguagem C
• Operadores
• Estruturas de Controle – Decisão e repetição
• Modularização em C: uso de Funções
• Estruturas de dados homogêneas (vetores e matrizes) e heterogê-
neas (estruturas)
• Manipulação de strings
BIBLIOGRAFIA BÁSICA
DEITEL, H. M.; DEITEL, P. J. Como programar em C. Rio de Janeiro: LTC, 1999.
HERBERT, S. C Completo e Total. São Paulo: Makron Books, 1997.
MIZRAHI, V. V. Treinamento em Linguagem C - Módulos 1 e 2. Rio de Janeiro:
Makron Books, 1993.

BIBLIOGRAFIA COMPLEMENTAR
ASCENCIO, Ana Fernanda Gomes; CAMPOS, Edilene Aparecida Veneruchi de.
Fundamentos da programação de computadores: algoritmos, Pascal e C/C++.
São Paulo: Pearson Prentice Hall, 2003.
ORTH, Afonso Inácio. Algoritmos e programação com resumo das linguagens
Pascal e C. Porto Alegre: AIO, 2001.
ZIVIANI, Nivio. Projeto de algoritmos: com implementações em Pascal e C.
2. ed. São Paulo: Thomson, 2004.

unitins • análise e desenvolvimento de sistemas • 1º PeRÍodo 281


aula 1 • algoRitmos e PRogRamação

Aula 1
Introdução à programação
em linguagem C

Esperamos que, ao final desta aula, você seja capaz de:


• conhecer os principais conceitos da linguagem C;
• escrever programas para resolver problemas triviais.

Esta primeira aula representa o nosso primeiro contato com uma linguagem
de programação real. Para esta disciplina, foi escolhida a Linguagem C. A ativi-
dade de programação pode ser descrita como a transcrição de algoritmos para
uma linguagem de programação que possa ser executada por um computador.
Dessa maneira, um dos requisitos para iniciar a atividade de programação é
estar em dia com a prática no desenvolvimento de algoritmos, como foi estudado
na disciplina de Lógica de Programação.

A linguagem C é uma das mais importantes linguagens de programação


desde a década de 80. Apresenta características como portabilidade e robustez
e é uma das mais populares entre os programadores.
Assim como a maioria das linguagens de programação, a Linguagem C possui
uma sintaxe bem definida, que deve ser respeitada para que os programas possam ser
executados corretamente. Outras características importantes da linguagem C são:
• é uma linguagem estruturada: de maneira resumida, podemos dizer que
a linguagem C permite dividir o programa em sub-rotinas, de maneira
que cada uma delas execute uma parte específica do programa;
• é considerada por diversos autores, como (SHILDT, 2001), uma lingua-
gem de médio nível, por incorporar comandos de alto nível e também a
possibilidade de manipular bits, bytes, endereços de memória e outros
elementos específicos do sistema computacional;

unitins • análise e desenvolvimento de sistemas • 1º PeRÍodo 283


aula 1 • algoRitmos e PRogRamação

• é uma linguagem compilada, ou seja, o código de um programa em


linguagem C não é diretamente executado pelo processador, mas traduzido,
por um programa chamado compilador, para uma linguagem chamada de
linguagem objeto, que pode ser executada diretamente pela CPU;
• é uma linguagem do tipo case sensitive, ou seja, faz distinção entre
letras minúsculas e maiúsculas, tanto na declaração de variáveis quanto
na escrita dos comandos da própria linguagem.
Nesta aula, estudaremos os conceitos básicos da linguagem C para permitir
uma descrição da linguagem e possibilitar o desenvolvimento de programas
básicos, como veremos a seguir.

1.1 A codificação de um programa


A linguagem C possui um conjunto de caracteres que podem ser utilizados
na codificação de um programa. Caracteres como acentos e cedilha não são
reconhecidos como caracteres válidos. A seguir, são apresentados os caracteres
utilizáveis em um programa escrito em linguagem C.

abcdefghijklmnopqrstuvwxyz
ABCDEFGHIJKLMNOPQRSTUVWXYZ
1234567890
+-*/\=|&!?#%(){}[]_‘“.,:<>

Quaisquer comandos, definições ou outros elementos de um programa


podem ser escritos utilizando somente os caracteres válidos da linguagem. É
importante ressaltar que alguns caracteres têm funções específicas, tendo seu uso
restrito às situações pertinentes.

1.2 Elementos da linguagem C


Existem ainda outros elementos importantes da linguagem C que compõem
os programas, vamos estudá-los.

1.2.1 Palavras reservadas


Uma linguagem de programação, diferente das linguagens que utilizamos
naturalmente para nos comunicar, como português ou inglês, tem poucas pala-
vras, caso contrário seria difícil verificar as regras de construção dos comandos.
A linguagem C, em particular, possui um conjunto restrito de palavras reser-
vadas. Essas palavras são usadas sempre em letras minúsculas e podem compor
comandos e outras construções importantes da linguagem. O quadro a seguir
apresenta as palavras reservadas da linguagem C.

284 1º PeRÍodo • análise e desenvolvimento de sistemas • unitins


aula 1 • algoRitmos e PRogRamação

auto double int struct


break else long switch
case enum register typedef
char extern return union
const float short unsigned
continue for signed void
default goto sizeof volatile
do if static while

1.2.2 Tipos de Dados


Segundo Ascenio e Campos (2003), a linguagem C possui cinco tipos de
dados básicos: int, float, double, void e char. Esses tipos básicos podem ser
manipulados por modificadores, que os redefinem para se adaptarem a dife-
rentes situações. A seguir, você pode conferir os tipos básicos, bem como os
tipos modificados.

TIPO DE DADO TAMANHO (EM BITS) INTERVALO DE REPRESENTAÇÃO


-127 a 127 (correspondendo a caracteres
char 8
da tabela ASCII)
unsigned char 8 0 a 255
signed char 8 -127 a 127
int 16 -32767 a 32767
unsigned int 16 0 a 65.535
signed int 16 -32767 a 32767
short int 16 -32767 a 32767
unsigned short int 16 0 a 65.535
signed short int 16 -32767 a 32767
long int 32 -2.147.483.647 a 2.147.483.647
signed long int 32 -2.147.483.647 a 2.147.483.647
unsigned long int 32 0 a 4.294.967.295
float 32 seis dígitos de precisão
double 64 dez dígitos de precisão
long double 80 dez dígitos de precisão

Tipos de dados, como sugerido na tabela, podem ser numéricos ou alfanu-


méricos (caracteres). Nesta aula, recomendamos, para fins didáticos, somente
o uso dos cinco tipos básicos apresentados, não sendo necessário utilizar os
modificadores. Vale ressaltar ainda que a linguagem C não contém um tipo de
dados que especifique seqüências de caracteres. Essas seqüências, chamadas
de strings, serão abordadas posteriormente.

unitins • análise e desenvolvimento de sistemas • 1º PeRÍodo 285


aula 1 • algoRitmos e PRogRamação

1.2.3 Identificadores, declaração de variáveis e valores constantes


Os identificadores são usados em uma linguagem de programação para
definir os nomes das variáveis, constantes e outras estruturas criadas pelo
programador, como funções, registros e bibliotecas, conceitos que veremos nas
próximas aulas. Relembrando: há diferenças entre maiúsculas e minúsculas! Por
exemplo, variáveis com nomes idade e Idade são reconhecidas como variáveis
diferentes. Vale lembrar que os identificadores são únicos, ou seja, um identi-
ficador usado para uma variável não poderá ser usado para referenciar uma
função ou biblioteca, e vice-versa.
Na linguagem C, a declaração de variáveis sempre segue o padrão a seguir.

<tipo_de_dados> <nome_da_variável>;

O tipo de dados deve ser um dos tipos nativos da linguagem ou um


tipo definido pelo usuário (como veremos em breve), e o nome da variável
deve conter apenas caracteres válidos, sem acentos, símbolos matemáticos ou
espaços. No caso de mais de uma variável do mesmo tipo, elas podem ser
separadas por vírgulas; e variáveis de tipos diferentes devem ser declaradas
em comandos diferentes. Veja alguns exemplos.

int x;
int numero1, numero2;
float media; char ch1;

É sempre recomendado que se utilize identificadores significativos para o


contexto do programa, para facilitar o seu entendimento. Outro elemento impor-
tante da programação são os valores constantes.
No contexto de programação, constantes são valores fixos que o programa
não pode alterar (SHILDT, 2001). Em linguagem C, podem ser considerados
constantes dos cinco tipos básicos, como apresentado a seguir.
TIPO DE DADO EXEMPLOS DE CONSTANTES
char ‘b’ ‘\n’ ‘\0’
int 2 32000 -130
long int 100000 -467
short int 100 -30
unsigned int 50000 35678
float 0.0 23.7 -12.3e-10
double 12546354334.0 -0.0000034236556

286 1º PeRÍodo • análise e desenvolvimento de sistemas • unitins


aula 1 • algoRitmos e PRogRamação

Os valores constantes em um programa podem ter diversas finalidades,


como servir de base para comparação entre valores fixos e dados informados
pelo usuário. Valores constantes também podem ser atribuídos a variáveis, desde
que sejam do mesmo tipo de dados.

1.2.4 Operadores

Os operadores são elementos importantes na construção de diversos


comandos em programação. Existem várias maneiras de classificar os opera-
dores, por exemplo, podemos encontrar operadores binários – que se aplicam a
dois operandos; e operadores unários – que se aplicam a um único operando.
Outra forma de classificação é em relação à sua função. A seguir, são apresen-
tados os operadores mais comumente utilizados na linguagem C.

• Aritméticos
OPERADOR AÇÃO
+ Soma (inteira e ponto flutuante)
- Subtração ou Troca de sinal (inteira e ponto flutuante)
* Multiplicação (inteira e ponto flutuante)
/ Divisão (inteira e ponto flutuante)
% Resto de divisão (de inteiros)
++ Incremento (inteiro e ponto flutuante)
-- Decremento (inteiro e ponto flutuante)

• Lógicos
OPERADOR AÇÃO
&& E lógico (do inglês AND)
|| OU lógico (do inglês OR)
! NÃO lógico (do inglês NOT)

• Relacionais
OPERADOR AÇÃO
> Maior que
< Menor que
>= Maior ou igual a
<= Menor ou igual a
== Igual a
!= Diferente de ou “não igual a”

• Atribuição
OPERADOR AÇÃO
Atribui à variável do lado esquerdo o valor do lado direito
=
do operador.

unitins • análise e desenvolvimento de sistemas • 1º PeRÍodo 287


aula 1 • algoRitmos e PRogRamação

• Operadores de endereços
OPERADOR AÇÃO
& retorna o endereço de uma variável
retorna o conteúdo de uma variável ponteiro, que será vista
*
nas aulas posteriores
Outros operadores importantes serão apresentados em momentos oportunos.
Por enquanto, você pode usar os que já foram apresentados para criar uma
grande quantidade de programas simples em linguagem C.

1.3 A estrutura de um programa básico em linguagem C


Por ser uma linguagem estruturada e com base em suas características particu-
lares, um programa em linguagem C pode ser definido como um conjunto de funções.
Para esta aula, iremos considerar apenas programas seqüenciais, ou seja, sem desvios
de fluxo, e com apenas uma única função. Mas, antes de criarmos o nosso primeiro
programa, vamos discutir alguns conceitos essenciais, como as bibliotecas.

1.3.1 Bibliotecas
Se observarmos bem, veremos que as palavras reservadas e os comandos
da linguagem C não apresentam alguns recursos básicos de um programa, por
exemplo, comandos de entrada ou saída de dados. Essas funções estão, geral-
mente, disponíveis nas bibliotecas C padrão (SHILDT, 2001). Em outras pala-
vras, as bibliotecas são repositórios de funções que podem ser usadas pelos
programadores para diversos fins, como entrada e saída de dados, cálculos
matemáticos, tratamento de cadeias de caracteres, entre outros.
As bibliotecas são incluídas em um programa por meio de uma diretiva de
compilação, que é um comando enviado para o compilador, fazendo com que as
funções de uma determinada biblioteca fiquem disponíveis para o programador.
Uma biblioteca pode ser incluída em um programa da seguinte maneira:

#include <caminho do arquivo da biblioteca>

Em geral, as bibliotecas da linguagem C ficam armazenadas em um dire-


tório padrão. É importante dizer também que os arquivos que contêm as biblio-
tecas têm extensão “.h”. Algumas das bibliotecas mais usadas em programas
básicos são os listados a seguir.

stdio.h // funções de entrada e saída


stdlib.h // biblioteca padrão
conio.h // entrada e saída pelo console
alloc.h // alocação de memória

288 1º PeRÍodo • análise e desenvolvimento de sistemas • unitins


aula 1 • algoRitmos e PRogRamação

Já que abordamos as funções de entrada e saída, vamos comentar sobre


duas funções que podem nos ser úteis em muitos programas e permitem que
iniciemos na programação em linguagem C.

1.3.2 Funções de entrada e saída de dados


Uma das principais justificativas para a utilização de programas de compu-
tador é servir aos usuários. Dessa maneira, é importante que os usuários possam
enviar dados para os programas. Os dados dos usuários são informados aos
programas por meio das funções de entrada. Vejamos alguns exemplos.
A linguagem C oferece um grande conjunto de funções que permitem ler
valores dos dispositivos de entrada e escrever nos dispositivos de saída. Iremos
estudar as mais utilizadas.
a) Entrada formatada (scanf)
A função scanf é muito utilizada na programação em linguagem C. Sua utili-
dade é permitir a entrada de dados. Essa função está declarada na biblioteca
stdio.h, seus parâmetros sempre são informados entre parênteses e a sua sintaxe
básica é apresentada a seguir:

scanf(“<string de formatação>”,&variável)

A <string de formatação> descreve o tipo de valor que será informado.


Dessa maneira, a formatação dos dados lidos é adequada para o tipo da vari-
ável que receberá o valor. Por ser uma string, ou seqüência de caracteres, a
string de formatação sempre deve ser informada entre aspas.
O segundo parâmetro, separado por vírgula da string de formatação, indica
a variável que receberá o valor. Na linguagem C, o valor a ser informado pelo
usuário é diretamente copiado para a posição de memória ocupada pela vari-
ável, por isso deve ser utilizado o símbolo &. Eis um exemplo de como você pode
ler um valor inteiro pelo teclado: scanf(“%d”, &numero).
A string de formatação “%d” indica que o valor deve ser formatado como
um inteiro. Vejamos a seguir as formatações mais comuns da linguagem C.
ESPECIFICADOR FORMATO
%d inteiro
%o inteiro em formato octal
%x
inteiro em formato hexadecimal
%X
%u unsigned int
%ld long int
%f float

unitins • análise e desenvolvimento de sistemas • 1º PeRÍodo 289


aula 1 • algoRitmos e PRogRamação

ESPECIFICADOR FORMATO
%c char
%e
float em formato exponencial
%E
%g float. C escolhe melhor maneira de exibição entre normal e
%G exponencial
%s string
%p endereço de um ponteiro
%n quantos caracteres a função printf exibiu

Observe que o valor entrado é passado para o endereço da variável. No


caso de leitura de uma string, não há necessidade do operador &, já que o nome
de uma string sem o índice é entendido pela linguagem C como um ponteiro
para o início da string.

b) Leitura de caracteres
Para ler um único caractere do teclado, podemos usar as funções getch( )
ou getche( ), declaradas na biblioteca conio.h. A diferença entre essas duas
funções é que a função getch( ) não apresenta na tela o caractere digitado, e a
função getche( ) apresenta. Veja exemplos de utilização a seguir.

char caractere; //declaração de uma variável do tipo char


caractere = getch( );
caractere = getchar( );

c) Lendo uma string do teclado


O conceito de strings será mais bem estudado na aula sete, porém será
introduzido informalmente apenas para compor o conteúdo desta aula. Uma
string é uma seqüência de caracteres. Sua utilidade aparece quando desejamos
armazenar dados, como o nome de uma pessoa, ou a descrição de um produto
(caso sejam dados pertinentes ao programa que se está construindo).
Você pode ler uma string do teclado usando as funções gets( ) e fgets( ).
Elas fazem parte do arquivo de cabeçalho stdio.h. A função gets( ) não tem seu
uso recomendado para aplicações comerciais que exijam robustez e segurança.
Porém a utilizaremos como exemplo para fins didáticos, em que seu uso é perfei-
tamente cabível. O único parâmetro da função gets( ) é a variável que deverá
armazenar o que for digitado pelo usuário do programa.

d) Saída formatada (printf)


A apresentação de mensagens para os usuários de um programa, assim
como a apresentação de dados manipulados e o resultado de comandos execu-

290 1º PeRÍodo • análise e desenvolvimento de sistemas • unitins


aula 1 • algoRitmos e PRogRamação

tados são muito importantes para um programa. Para executar essa tarefa, a
linguagem C oferece diversas opções, como a função printf. A sintaxe geral do
comando printf pode ser vista a seguir.

printf(“<string de formatação>”,<lista de variáveis>);

Utilizando os mesmos moldes da função scanf( ), a string de formatação na


função printf( ) indica o formato no qual o dado deve ser apresentado, além de
caracteres inseridos pelo usuário. A mesma tabela de formatações apresentada
para a função scanf( ) pode ser aplicada também à função printf( ).

e) Exibindo um caractere
Para exibir um único caractere na tela, podemos usar a função putchar( ),
que está no arquivo de cabeçalho stdio.h. Sua sintaxe é:

putchar(variável)

A variável pode ser um número inteiro, que será convertido em um caractere


ao ser apresentado, ou uma variável do tipo char.

f) Exibindo uma string


Novamente, abordamos informalmente o conceito de strings. Para apresentar
na tela uma seqüência de caracteres, podemos usar tanto a função printf( ) com
a string de formatação “%s”, quando quisermos imprimir o conteúdo de uma
variável, quanto a função puts( ), que tem como parâmetro uma cadeia de carac-
teres, seja armazenada em uma variável ou uma constante. A função printf( )
também pode ser usada para imprimir na tela constantes que sejam seqüências
de caracteres. Observe o exemplo dado.

printf(“Teste”);

Agora que já sabemos mais sobre a linguagem, sobre os elementos, sobre


as formas de entrada e saída de dados por parte do usuário do programa,
podemos ilustrar esses e outros conceitos por meio de exemplos.

Saiba mais

unitins • análise e desenvolvimento de sistemas • 1º PeRÍodo 291


aula 1 • algoRitmos e PRogRamação

1.4 Exemplos explicativos


Para encaixar os elementos vistos anteriormente dentro da estrutura de um
programa, vamos utilizar exemplos simples, porém significativos. Algumas expli-
cações serão repassadas linha a linha do programa por meio dos comentários.
Um comentário é um trecho do programa que serve apenas para fins explica-
tivos, ou seja, não influencia na execução do código do programa. Podemos
inserir comentários utilizando a construção “//”. A partir daí, até o final da
linha, todos os caracteres serão considerados apenas como comentários.
Caso se deseje inserir um comentário com mais de uma linha, podemos usar
“/*” para abrir o bloco de comentários e “*/” para fechá-lo.

1.4.1 O primeiro programa


Para finalizar a apresentação dos conceitos necessários para escrever um
programa, iremos abordar um exemplo no qual o programa solicita que o usuário
digite dois valores inteiros, e o programa apresentará a soma desses valores.
Leia atentamente o programa e os comentários para compreendê-lo.

#include <stdio.h> // inclusão da biblioteca stdio.h

int main( ) //função principal


{
int n1, n2,soma; // declaração das variáveis

printf(“primeiro número:”); // mensagem na tela


scanf(“%d”,&n1); // entrada dos dados
printf(“segundo número:”); // mensagem na tela
scanf(“%d”,&n2); //entrada de dados pelo
usuário
soma = n1 + n2; //soma dos valores
printf(“resultado: %d”,soma);// resultado na tela
return; // retorno da função
} // fim do bloco de comandos

A partir da utilização dos conceitos da linguagem, podemos construir


diversos programas simples, mas que tenham alguma utilidade no dia-a-dia.

Nesta aula, estudamos os principais conceitos da linguagem C, como


os elementos da linguagem, que nos permitem entender como transformar

292 1º PeRÍodo • análise e desenvolvimento de sistemas • unitins


aula 1 • algoRitmos e PRogRamação

algoritmos em programas; funções de entrada e saída de dados, para que


possamos construir programas com os quais o usuário possa interagir; opera-
dores, usados para manipular os dados do programa, por exemplo, efetuando
operações matemáticas; os tipos de dados, para que possamos trabalhar com
dados de diferentes maneiras, e outros. Dessa maneira, já podemos escrever
os primeiros programas.

1. Escreva um programa que solicite ao usuário que digite dois valores e apre-
sente na tela a soma, a subtração e a multiplicação desses valores.

2. Qual das alternativas a seguir contém somente palavras que não podem ser
usadas como identificadores?
a) void, int, numero, option c) num1, num2, op, valor1
b) void, int, char, opção d) int, float, if, while

3. Por que não podemos usar duas variáveis com o mesmo nome, mesmo que
tenham tipos diferentes?

4. Qual das alternativas a seguir contém apenas funções para entrada de dados?
a) printf, puts, putchar c) scanf, gets, getch
b) read, write, put d) void, int, char

Os objetivos da aula são conhecer os principais conceitos da linguagem C e


escrever programas para resolver problemas triviais. Se você conseguiu realizar
as atividades propostas, então atingiu os objetivos. Vamos conferir?
Na atividade um, é solicitado que escreva um programa. Obviamente iremos
utilizar os conceitos estudados ao longo da aula. Para que o programa esteja
completo e correto, é necessário enviar mensagens na tela para o usuário, fazer
a leitura dos valores numéricos informados, armazená-los em variáveis usando
uma função de entrada de dados, usar os operadores matemáticos para efetuar
as operações e usar uma função de saída para apresentar os dados. A solução
é apresentada a seguir.

#include <stdio.h>
int main( )
{
int valor1, valor2, soma, subt, mult;

unitins • análise e desenvolvimento de sistemas • 1º PeRÍodo 293


aula 1 • algoRitmos e PRogRamação

printf(“Informe o valor 1:”);


scanf(“%d”,&valor1);

printf(“Informe o valor 2:”);


scanf(“%d”,&valor2);

soma = valor1 + valor2;


subt = valor1 - valor2;
mult = valor1 * valor2;

printf(“\nSoma = %d\n”,soma);
printf(“Subtracao = %d\n”,subt);
printf(“Multiplicacao = %d\n”,mult);

return;
}

Vamos comentar a atividade dois alternativa por alternativa e respondê-la


por eliminação. Na alternativa:
a) os termos void e int são tipos de dados, portanto palavras reservadas
(incorreta);
b) os termos void, int e char são tipos, portanto palavras reservadas
(incorreta);
c) nenhum dos termos usados é palavra reservada da linguagem, logo
podem ser usados como identificadores (correta);
d) int, float, if, while, todas palavras utilizadas como comandos (if e while)
ou tipos de dados (int e float) incorreta.
Em relação à atividade três, identificadores são usados para referenciar
elementos de um programa que foram definidos pelo programador, como nomes
de variáveis. Já sabemos que uma variável é uma posição de memória referen-
ciada por um nome (identificador) que pode armazenar dados manipulados pelo
programa. Se tivermos duas variáveis com o mesmo nome, como o sistema irá saber
em qual das duas estão os dados solicitados em um determinado momento? Para
evitar esse tipo de problema, os identificadores são únicos em um programa.
Sobre a atividade quatro, iremos comentar, também, alternativa por alternativa:
a) printf, puts, putchar – todas funções de saída;
b) read, write, put – comandos não são específicos da linguagem C;

294 1º PeRÍodo • análise e desenvolvimento de sistemas • unitins


aula 1 • algoRitmos e PRogRamação

c) scanf, gets, getch – entrada formatada, leitura de string e leitura de um


único caractere – todas funções de entrada;
d) void, int, char – tipos de dados.
De acordo com o exposto, a resposta correta é a alternativa (c).

ASCENCIO, Ana Fernanda Gomes; CAMPOS, Edilene Aparecida Veneruchi de.


Fundamentos da programação de computadores: algoritmos, Pascal e C/C++.
São Paulo: Pearson Prentice Hall, 2003.
SHILDT, Herbert. C Completo e Total. São Paulo: Makron Books, 2001.

Estudaremos as estruturas de decisão, também chamadas de comandos


condicionais. Essas estruturas representam um importante recurso em progra-
mação que permitem desenvolver programas com maior facilidade e com
melhor inteligibilidade.

Anotações

unitins • análise e desenvolvimento de sistemas • 1º PeRÍodo 295


aula 1 • algoRitmos e PRogRamação

296 1º PeRÍodo • análise e desenvolvimento de sistemas • unitins


aula 2 • algoRitmos e PRogRamação

Aula 2
Estruturas de controle:
condicionais

Esperamos que, ao final desta aula, você seja capaz de:


• diferenciar programas com e sem desvios de fluxo;
• conhecer as estruturas condicionais da linguagem C.

Na aula anterior, estudamos alguns dos conceitos primordiais da linguagem


C, justamente aqueles que nos permitem iniciar na atividade de programação,
tais como palavras reservadas, operadores, variáveis e constantes. Esses são
os pré-requisitos para esta aula, ou seja, devemos ser capazes de construir
programas utilizando os conceitos que foram apresentados na aula um.

A programação de computadores evoluiu muito desde o início dessa ativi-


dade. Tanto as máquinas quanto os compiladores e, principalmente, para nós,
os recursos oferecidos pelas linguagens de programação possibilitaram criar
novos modelos de programação muito úteis.
Os programas que exemplificamos até agora somente nos permitem executar
comandos um após o outro, ou seja, seqüencialmente. A linguagem C contém
instruções que permitem criar programas cujo fluxo de execução tenha desvios,
ou seja, não exatamente seqüencial. Esses comandos são chamados de estru-
turas de controle. Nesta aula, estamos interessados nas estruturas de controle
condicionais e algumas condições determinadas pelo programador irão decidir
qual rumo o programa irá seguir. Vamos conhecê-las então?

2.1 Desvios de fluxo


Sabemos que o computador é uma máquina que executa instruções. Sabemos
também que as instruções de um programa de computador são executadas

unitins • análise e desenvolvimento de sistemas • 1º PeRÍodo 297


aula 2 • algoRitmos e PRogRamação

uma por vez (pelo menos como estudamos até agora). Porém, dependendo dos
valores de entrada de um programa, pode ser que se deseje produzir saídas
diferentes, então um teste condicional é necessário, ou seja, é preciso verificar se
as entradas correspondem a uma ou a outra saída possível para o programa.
Um algoritmo que usa um teste condicional pode seguir rumos diferentes,
como ilustra a figura a seguir.

Figura 1 Desvio condicional em um algoritmo.

Observe que o algoritmo solicita do usuário a entrada de dois valores. Caso


o valor de X seja maior do que o valor de Y, uma mensagem será impressa na
tela e, na seqüência, o programa termina normalmente. Se essa condição não
for satisfeita, o programa segue para o final. Em programação, dizemos que
essa instrução causa um desvio de fluxo, pois a instrução seguinte ao teste seria
“imprima X é maior”. Porém, se a condição não for satisfeita, haverá um “salto”
para o final do algoritmo. A partir de agora, vamos abordar esses testes e estru-
turas de controle condicionais no contexto da linguagem C.

Saiba mais

2.1.1 O teste condicional


Como já afirmado anteriormente, para que um desvio condicional de fluxo
ocorra, é necessário que haja um teste condicional. Esse teste pode ser composto,
por exemplo, de uma comparação entre valores. Nesse caso, é muito importante
a utilização dos operadores relacionados na aula 1.

298 1º PeRÍodo • análise e desenvolvimento de sistemas • unitins


aula 2 • algoRitmos e PRogRamação

Em linguagem C, não existe um tipo para dados booleanos (verdadeiro


ou falso). O valor lógico falso é correspondente a 0, enquanto o verdadeiro
é representado por qualquer valor diferente de 0, incluindo valores negativos
(SHILDT, 2001). Em princípio, pode parecer estranho, mas veremos ao longo da
disciplina que podemos obter algumas vantagens com essa metodologia.
Podemos concluir então que um teste condicional retorna valor 0 quando é
falso, e um valor diferente de 0 quando é verdadeiro. Dessa maneira, as estru-
turas de controle condicionais podem determinar se haverá ou não um desvio no
fluxo de execução do programa.

2.2 Estruturas condicionais simples e compostas


As estruturas condicionais são importantes para que possamos construir
programas que atendam melhor às necessidades do programador. Sem a utilização
desse tipo de recurso, seria necessário recorrer a comandos típicos de progra-
mação seqüencial, como o comando goto. E isso não é desejável, já que seria um
retorno a um paradigma de programação ultrapassado. Vamos ver um if.

2.2.1 If
O comando if é uma estrutura de controle condicional que faz com que,
dependendo de um teste, um trecho do programa seja executado ou não. Veja
a sintaxe do comando, observando os comentários.

if( condição ) // teste condicional


{ // início do bloco de comandos
comandos // sequencia de comandos internos ao bloco if
} // fim do bloco de comandos

O exemplo a seguir apresenta um programa que implementa o algoritmo


representado na Figura 1.

#include <stdio.h>

int main( )
{
int x, y;
printf(“digite um valor para x: ”);
scanf(“%d”, &x);

unitins • análise e desenvolvimento de sistemas • 1º PeRÍodo 299


aula 2 • algoRitmos e PRogRamação

printf(“digite um valor para y: ”);


scanf(“%d”, &y);

if ( x > y)
{
printf(“x é maior”);
}

return;
}

Observe que existe apenas um único comando dentro do boco if. Nesse
caso, não seria necessário iniciar o bloco com “{“ e fechá-lo com “}”. Isso
somente é realmente necessário quando existe mais de um comando interno
ao bloco. Vamos observar dois exemplos sem muita utilidade prática, mas que,
didaticamente, são adequados para ilustração.

Primeiro exemplo:

...
scanf(“%d”, &n); // leitura de valor para n
scanf(“%d”, &m); // leitura de valor para m

if( n > m ) // teste condicional


{ // início do bloco if

temp = m; // troca o valor de m pelo valor de n


m = n; // usando a variável tem como auxiliar
n = temp; // para que m tenha o maior valor

printf(“trocando os valores, m é o maior”);


}
...

Aqui é realmente necessária a presença dos caracteres “{“ e “}” para aber-
tura e fechamento do bloco if, pois existem dois ou mais comandos internos ao
bloco. Reescrevendo o exemplo que ilustra a Figura 1, temos:

...
if ( x > y) // teste condicional
printf(“x é maior”); // único comando interno
...

300 1º PeRÍodo • análise e desenvolvimento de sistemas • unitins


aula 2 • algoRitmos e PRogRamação

Nesse caso, apenas o comando printf(“x é maior”); é interno ao bloco.


Dessa maneira, qualquer comando depois desse será executado independente-
mente do resultado do teste condicional. Mas existe a possibilidade de inserir
comandos para serem executados somente quando o teste for falso? É o que
vamos responder em seqüência.

2.2.2 If – Else
O comando if pode ser complementado pelo comando else, do inglês: se
não. Dessa maneira, fica especificado um bloco de comandos para ser execu-
tado quando o resultado do teste condicional for verdadeiro, e outro bloco de
comandos para ser executado especificamente quando o teste tiver valor falso.
A Figura 2 a seguir nos ajuda a entender essa afirmação.

Figura 2 Ilustração do “se não”.

Observe que um dos dois blocos será obrigatoriamente executado: teste


verdadeiro (if ) ou teste falso (else). Apresentamos a seguir um trecho de programa
que ilustra, em forma de código, o exemplo da Figura 1.

...
if ( x > y)
{
printf(“x é maior”);
}
else
{

unitins • análise e desenvolvimento de sistemas • 1º PeRÍodo 301


aula 2 • algoRitmos e PRogRamação

printf(“x não é maior”);


}
...

Vale ressaltar que, assim como o if, o else também pode conter diversos
comandos internos ao bloco e esse bloco deve sempre ser iniciado e finalizado
com “{“ e “}”, respectivamente, quando tiver dois ou mais comandos. Da mesma
forma que o if, se contiver apenas um comando, não é necessário usar “{“ e “}”
para abrir e fechar o bloco de comandos.

2.2.3 Estruturas condicionais aninhadas


É comum encontrarmos situações nas quais mais de um teste condicional é
necessário para determinar se um trecho do programa deve ou não ser execu-
tado. Vamos considerar um caso do cotidiano brasileiro: o recolhimento de
imposto de renda.
Se o cidadão tem rendimentos abaixo de um valor especificado, é isento
de imposto. Caso não seja menor, pode se encaixar em mais de uma faixa de
cobrança. Dessa maneira, teríamos de implementar, diante da possibilidade de
não ser isento, as diversas possibilidades de cobranças diferentes, de acordo
com os rendimentos do cidadão. É como se tivéssemos uma condição dentro de
outra. Chamamos essa construção de estruturas aninhadas.
A Figura 3 a seguir ilustra esse conceito, utilizando o mesmo exemplo que
vem sendo abordado. Note que, com estruturas aninhadas, o fluxo de execução
do programa pode seguir direções diferentes, e vários comandos acabam não
sendo executados.
Figura 3 Ilustração do aninhamento de estruturas de decisão.

302 1º PeRÍodo • análise e desenvolvimento de sistemas • unitins


aula 2 • algoRitmos e PRogRamação

O trecho de programa apresentado a seguir ilustra a figura em forma de


código, assim poderemos fazer uma associação entre a implementação e a visu-
alização que a figura permite.

...
if ( x > y) // primeiro teste lógico
{
printf(“x é maior”);
}
else
{
if( x == y ) // if aninhado
{
printf(“iguais”);
}
else // else aninhado
{
printf(“x é menor”);
}
}
...

Note que sempre que um bloco do programa é iniciado, os seus comandos


internos estão inseridos com um espaçamento a mais. É o que chamamos de
identação, e é muito útil para facilitar o entendimento e a visualização do início
e do fim de cada bloco de comandos que compõe o programa.

2.4 Estrutura de seleção múltipla


A linguagem C disponibiliza o comando switch, que testa sucessivamente
o valor de uma expressão, comparando-a com uma lista de constantes inteiras
ou de caractere [Shildt]. Quando é verificado que uma das constantes tem
o mesmo valor do que a expressão, o bloco de comandos associado com
a constante é executado. A seguir, é apresentada a sintaxe desse comando
muito útil.

switch( expressão )
{
case constante 1: comandos
break;
case constante 2: comandos

unitins • análise e desenvolvimento de sistemas • 1º PeRÍodo 303


aula 2 • algoRitmos e PRogRamação

break;
...
case constante n: comandos
break;
}

A expressão nesse comando não consiste em um teste lógico, mas em um


valor que será comparado às constantes. A seguir, é apresentado um programa
que utiliza o comando switch.

#include <stdio.h>
int main()
{
int x, y;
char opcao;
printf(“digite o primeiro numero:”);
scanf(“%d”,&x);
printf(“digite o segundo numero:”);
scanf(“%d”, &y);
printf(“escolha uma opcao:\n”);
printf(“1 – soma\n”);
printf(“2 – subtracao\n”);
printf(“3 – divisao\n”);
printf(“4 – multiplicação\n”);
printf(“escolha: “);
opcao = getch();
switch(opcao)
{
case ‘1’: printf(“soma = %d”, x + y);
break;
case ‘2’: printf(“subtracao = %d”, x - y);
break;
case ‘3’: printf(“multiplicacao = %d”, x * y);
break;
case ‘4’: printf(“divisao = %d”, x / y);
break;
}
return;
}

304 1º PeRÍodo • análise e desenvolvimento de sistemas • unitins


aula 2 • algoRitmos e PRogRamação

Você já deve ter entendido a funcionalidade do programa, que solicita ao


usuário dois valores e oferece a opção de executar uma das quatro operações
básicas da matemática sobre os números informados. Observe que a expressão
usada no comando switch é uma variável que recebe o caractere digitado pelo
usuário e é retornado pela função getch( ).

O comando break ao final de cada um dos blocos de comandos tem a finalidade


de desviar o fluxo de execução para a primeira instrução após o switch para que as
outras opções de teste não sejam verificadas. Esse comando funciona também em
outras estruturas de controle, tais como o if, sempre desviando o fluxo de execução
para a primeira instrução após o bloco em que o comando está inserido.

Nesta aula, estudamos as principais estruturas de decisão da linguagem C:


If – estrutura de decisão simples, que permite que um bloco de comandos seja
executado caso um teste seja verdadeiro; else – comando que somente pode ser
usado em conjunto com o if permite que um bloco de comando seja executado
caso o resultado do teste condicional do if seja falso; e switch – comando de
seleção múltipla, no qual sucessivos testes são realizados em relação a um único
valor, e para cada teste um bloco de comandos é executado. Verificamos as
necessidades para que possam ser usadas corretamente, e identificamos situa-
ções nas quais estas devem ser utilizadas.

1. Escreva um programa que solicite ao usuário que digite um valor numérico e


apresente na tela uma mensagem informando se o número é par ou ímpar.

2. Em relação ao comando if, qual das alternativas a seguir é incorreta?


a) O comando if pode provocar um desvio no fluxo de execução do
programa.
b) É possível que o teste condicional presente no comando if possa envolver
os operadores >, <, == ou !=.
c) Um teste condicional em uma estrutura de decisão pode conter mais de
um operador de comparação.
d) Operadores lógicos não podem ser usados em testes condicionais.

3. Escreva um programa, usando o comando switch, para que o usuário


informe um valor e escolha se deseja obter o quadrado ou o cubo do
valor informado.

unitins • análise e desenvolvimento de sistemas • 1º PeRÍodo 305


aula 2 • algoRitmos e PRogRamação

4. Qual das estruturas de decisão mostradas a seguir, em trechos de programas,


nunca terá seu bloco de comandos executado?
a) if( x > 5)
comando;

b) if(x < 5)
comando;
else
comando;

c) if( (x < 2) && (x > 3) )


comando

d) if(x == 2)
comando;

Os objetivos da aula são identificar programas com e sem desvios de fluxo


e conhecer as estruturas de decisão. Para saber se os objetivos foram atingidos,
vamos à primeira atividade.
Na atividade um, o usuário deve informar um valor numérico. Na seqüência,
devemos capturar o resto da divisão desse valor por dois, para verificarmos se
é par ou não. Então apresentaremos a mensagem correta para o usuário. Essa
resposta dependerá de um teste condicional que utiliza o operador %, que
retorna o resto da divisão de um valor por outro. O programa a seguir solu-
ciona essa tarefa.

#include <stdio.h>
int main( )
{
int valor1;
printf(“informe um valor numerico: “);
scanf(“%d”,&valor1);
if( (valor1 % 2) == 0 )
printf(“Numero par\n”);
else
printf(“Numero impar\n”);
return;
}

306 1º PeRÍodo • análise e desenvolvimento de sistemas • unitins


aula 2 • algoRitmos e PRogRamação

Observe que o teste condicional compara o resto da divisão com o valor 0.


A atividade dois é relativa a conceitos que vimos no decorrer da aula. A
letra (a) é correta, pois as estruturas podem provocar desvios de fluxo depen-
dendo do resultado dos testes condicionais. A (b) está correta pelo fato de que
os operadores de comparação retornam valores lógicos 0 ou 1, utilizados em
testes condicionais. A letra (c) está correta, já que o teste condicional deve repre-
sentar uma expressão lógica, que pode ser feita com apenas um operador, mas
também pode conter vários. Finalmente, a alternativa (d) está incorreta, já que
os operadores lógicos, como && e || (“e” e “ou” respectivamente) podem ser
usados para compor um teste condicional.
Para resolver a atividade três, sendo também um programa, podemos seguir
esta seqüência:
1. solicitar que o usuário informe um valor numérico;
2. solicitar uma opção para efetuar a operação desejada;
3. usar o comando switch para selecionar a operação (usando case);
4. finalizar o programa.
O programa a seguir implementa essa solução.

#include <stdio.h>
#include <conio.h>
int main( )
{
int valor1;
char op;
#include <stdio.h>
#include <conio.h>
int main( )
{
int valor1;
char op;
printf(“informe um valor numerico: “);
scanf(“%d”,&valor1);
printf(“Escolha uma opcao: 1 - quadrado; 2 - cubo”);
op = getch();
switch(op)
{
case ‘1’:
printf(“\n%d ao quadrado = %d\n”, valor1,
valor1*valor1);

unitins • análise e desenvolvimento de sistemas • 1º PeRÍodo 307


aula 2 • algoRitmos e PRogRamação

break;
case ‘2’:
printf(“\n%d ao cubo = %d\n”, valor1,
valor1*valor1*valor1);
break;
}
return;
}

Na atividade quatro, apenas a alternativa (c) está incorreta, já que um valor


não pode ser menor do que 2 e maior do que 3 ao mesmo tempo. As outras
alternativas: (a): if( x > 5), (b) if(x < 5) e (d) if(x == 2) contêm testes que podem
simplesmente serem verdadeiros ou falsos, sendo executados ou não (mas com
possibilidades para os dois casos, ao contrário da alternativa (c)).

ASCENCIO, Ana Fernanda Gomes; CAMPOS, Edilene Aparecida Veneruchi de.


Fundamentos da programação de computadores: algoritmos, Pascal e C/C++.
São Paulo: Pearson Prentice Hall, 2003.
SHILDT, Herbet. C Completo e Total. São Paulo, Makron Books, 2001.

Estudaremos as estruturas de repetição, que também são estruturas que contêm


instruções de desvio de fluxo. Essas estruturas nos permitem executar o mesmo
trecho de um programa diversas vezes, dando a noção de iteratividade.

Anotações

308 1º PeRÍodo • análise e desenvolvimento de sistemas • unitins


aula 3 • algoRitmos e PRogRamação

Aula 3
Estruturas de controle: repetição

Esperamos que, ao final desta aula, você seja capaz de:


• compreender as estruturas de repetição;
• implementar programas que utilizem as estruturas estudadas nesta aula.

Na última aula, estudamos as estruturas de controle condicionais. As estru-


turas de repetição não representam exatamente uma continuidade de conteúdo,
mas é importante que tenhamos a noção de desvios de fluxo e testes condicio-
nais. Outro requisito para que esta aula seja bem aproveitada é estar em dia
com a construção de programas seqüenciais em linguagem C.

A atividade de programação, em muitas situações, é repetitiva e cansativa.


Muitas rotinas se repetem tornando os programas extensos e difíceis de corrigir
e entender. Nesse cenário, surgiram as estruturas de repetição, comandos
que permitem que um trecho do programa seja executado diversas vezes sem
que tenhamos de escrevê-lo novamente. Essas estruturas de repetição, também
chamadas de comandos de iteração, ou simplesmente laços de iteração, estão
presentes em praticamente todas as linguagens de programação modernas.
Algumas das vantagens da utilização de estruturas de repetição é a possibi-
lidade de organizar melhor e facilitar o processo de compilação dos programas.
Além disso, a quantidade de vezes que uma operação é repetida pode depender
do usuário. Considere, por exemplo, um programa que faça o cálculo de poten-
ciação, em que o usuário informa a base e o expoente. Em seguida, a base
é multiplicada por si mesma até atingir a potência especificada no expoente.
Como implementar essa seqüência de multiplicações sem saber que valor o
usuário digitará para o expoente?

unitins • análise e desenvolvimento de sistemas • 1º PeRÍodo 309


aula 3 • algoRitmos e PRogRamação

A não ser que se conheça alguma função nativa da linguagem que implemente
essa operação, será necessário utilizar uma estrutura de repetição. Nesta aula,
estudaremos as estruturas for, while e do-while. Cada uma com características
específicas que podem nos ser úteis em diversas situações. Então, vamos nessa!

3.1 Estruturas de controle com teste no início


A figura a seguir ilustra esquematicamente uma estrutura de repetição com
teste no início.

Figura 1 Ilustração de estrutura de repetição com teste no início.

Observando a figura, percebemos que existe mais de uma possibilidade de


desvio no fluxo de execução do programa. Obviamente, a primeira é o teste
condicional, que pode direcionar a execução para o corpo do laço (bloco de
comandos) ou para a continuação do programa depois do laço. A segunda é
o desvio incondicional do fim do laço, que sempre retorna o fluxo de execução
para o teste da estrutura de repetição. Vamos conhecer as estruturas de repe-
tição da Linguagem C?

3.1.1 For
Na maioria das linguagens de programação, o laço for é caracterizado por
ter uma condição pré-definida que permite determinar a quantidade de vezes que
o corpo do laço será repetido. Em linguagem C, esse tipo de laço oferece uma
flexibilidade maior (SCHILDT, 2001). A sintaxe desse comando é a seguinte:

310 1º PeRÍodo • análise e desenvolvimento de sistemas • unitins


aula 3 • algoRitmos e PRogRamação

for(inicialização; condição; incremento)


{
comandos
}

Em geral, para o uso eficiente desse comando, tem-se uma variável de


controle. A inicialização do laço é, geralmente, um comando que atribui à
variável de controle um valor inicial. A condição é uma expressão que deter-
mina a persistência no laço. Enquanto a condição for satisfeita, o corpo do laço
(comandos) será repetido. A seguir, apresentamos um programa que retoma o
exemplo de potenciação.

#include <stdio.h>
int main()
{
int base, expoente, i; // i é a variável de controle
int potencia = 1; // receberá o resultado
printf(“digite o valor da base:”);
scanf(“%d”,&base);
printf(“digite o valor do expoente:”);
scanf(“%d”, &expoente);

for(i=0; i<expoente; i = i + 1) // laço


{
potencia = potencia * base;
}
printf(“%d elevado a %d=%d”,base,expoente,potencia);
return;
}

Note que a variável de controle “i” é inicializada com o valor 0 e a condição


é i<expoente. Dessa maneira, a variável i será incrementada de um (1) enquanto
a condição for satisfeita. Supondo que a base seja 2 e o expoente também 2, o
laço será executado duas vezes:
1º iteração: i=0, expoente=2, base=2, potencia=2;
2º iteração: i=1, expoente=2, base=2, potencia=4;
Após a segunda iteração, o valor de i será 2, pois foi incrementado, não
sendo menor do que expoente, o corpo do laço não será executado novamente.
Vale ressaltar que o incremento da variável de controle pode ser feito de diversas
maneiras diferentes, de acordo com a necessidade do programa, ou apenas

unitins • análise e desenvolvimento de sistemas • 1º PeRÍodo 311


aula 3 • algoRitmos e PRogRamação

variar a forma como é escrito. Por exemplo: o incremento do laço do exemplo


anterior poderia ser feito utilizando-se um operador de incremento, resultando
em i++. Essa é a forma mais comum de escrever um laço do tipo for. Veja como
ficaria o início do laço:

for(i=0; i<expoente; i++) // usando operador de incremento

Outra observação importante é que, se antes da primeira iteração a condi-


ção já não for satisfeita, o corpo do laço não será executado nenhuma vez. Essa
é uma das características das estruturas de repetição com teste no início. Outro
laço com teste no início disponível na linguagem C é o while.

3.1.2 While
O while é um laço cuja execução depende exclusivamente de um teste condi-
cional. A sua sintaxe é apresentada a seguir:

while(condição)
{
comandos;
}

A condição é um teste condicional que deve ser satisfeito para que o corpo
do laço seja executado. Note que, sendo um teste condicional, essa condição
pode, também, depender de uma variável de controle, ou ainda de um valor
digitado pelo usuário do programa. Vamos ver um exemplo de sua utilização.

#include <stdio.h>
int main()
{
int num; // declaração de variável
printf(“Digite um numero:”);
scanf(“%d”, &num);
while(num >= 0) // laço e condição de parada
{
printf(“Num ao quadrado = %d:”,num * num);
printf(“Digite um numero:”);
scanf(“%d”, &num);
}
return;
}

312 1º PeRÍodo • análise e desenvolvimento de sistemas • unitins


aula 3 • algoRitmos e PRogRamação

Esse programa recebe valores numéricos digitados pelo usuário e, enquanto


o valor informado for maior ou igual a zero, imprime o quadrado desse número.
Note que, depois de imprimir o quadrado do número digitado na tela, é solici-
tado novamente ao usuário que digite um novo valor.
Outro exemplo no qual o usuário não informa valores dentro do corpo do
laço é apresentado a seguir, vamos observar.

#include <stdio.h>
int main()
{
int n1, n2; // declaração de variável

printf(“Digite um numero:”);
scanf(“%d”, &n1);
printf(“Digite outro numero:”);
scanf(“%d”, &n2);

while(n1 < n2) // laço e condição de parada


{
printf(“%d”, n1); // escreve n1 na tela
n1 = n1+1; // incrementa n1
}
return;
}

Você já deve ter percebido que esse programa imprime na tela todos os
valores inteiros entre n1 e n2. Note que o usuário informa os dois valores inicial-
mente e, na seqüência, o laço é executado sem a intervenção do usuário.
Assim como o laço for, o corpo do laço while pode não ser executado
nenhuma vez, dependendo do teste que é feito no início. Porém existe um tipo
de laço que sempre executa pelo menos uma vez. São as estruturas de repetição
com teste no final.

3.2 Estruturas de controle com teste no final


Considerando que nas estruturas de repetição com teste no início existe a
possibilidade de o corpo do laço não ser executado (quando os testes condicio-
nais não estiverem satisfeitos), em algumas situações não é interessante que isso
ocorra. Para garantir que o corpo do laço seja executado pelo menos uma vez,

unitins • análise e desenvolvimento de sistemas • 1º PeRÍodo 313


aula 3 • algoRitmos e PRogRamação

existe a opção de utilizar as estruturas de repetição com teste no final. A figura


a seguir traz uma ilustração desse processo.

Figura 2 Ilustração de estrutura de repetição com teste no final.

Antes do laço, uma instrução qualquer é executada. Durante a primeira


execução do laço, o fluxo de execução segue como se fosse um trecho seqüencial
do programa e, somente ao chegar o final do laço, o teste condicional é reali-
zado. Caso a condição seja satisfeita, ocorre um desvio de fluxo direcionando a
execução novamente para o início do laço. Porém, se a condição não for satisfeita,
o fluxo da execução do programa segue normalmente para a próxima instrução.
Esse é um recurso disponível em praticamente todas as linguagens de progra-
mação de alto nível e tem sua utilidade em situações peculiares. Em linguagem
C, o comando que implementa uma estrutura de repetição com teste no final é o
do-while. Vamos conhecê-lo melhor.

3.2.1 Do-While
A sintaxe do comando do-while é a seguinte:

do
{
comandos
}while(condição);

Uma das utilizações mais comuns dos laços com teste no início são os menus
de opção nos quais uma resposta inválida provoca a repetição do menu (SHILDT,
2001). Vejamos e seguinte exemplo.

314 1º PeRÍodo • análise e desenvolvimento de sistemas • unitins


aula 3 • algoRitmos e PRogRamação

#include <stdio.h>
int main()
{
int x, y;
char op;

printf(“digite o primeiro numero:”); // usuario


scanf(“%d”,&x); // informa os
printf(“digite o segundo numero:”); // valores
scanf(“%d”, &y);

do // início do laço com teste no final


{
printf(“escolha uma opcao:\n”);
printf(“1 – soma\n”);
printf(“2 – subtracao\n”);
printf(“3 – divisao\n”);
printf(“4 – multiplicação\n”);

printf(“escolha: “);
op = getch();

}while(op!=‘1’ || op!=‘2’ || op!=‘3’ || op!=‘1’);

switch(opcao)
{
case ‘1’: printf(“soma = %d”, x + y);
break;
case ‘2’: printf(“subtracao = %d”, x - y);
break;
case ‘3’: printf(“multiplicacao = %d”, x * y);
break;
case ‘4’: printf(“divisao = %d”, x / y);
break;

}
return;
}

Observe que o laço se inicia com o do e na seqüência as opções são apresen-


tadas ao usuário. As opções são ‘1’ para soma, ‘2’ para subtração, ‘3’ para multi-

unitins • análise e desenvolvimento de sistemas • 1º PeRÍodo 315


aula 3 • algoRitmos e PRogRamação

plicação e ‘4’ para divisão. Depois do laço existe um comando de seleção (switch)
para que uma das operações seja executada. Porém, caso o usuário informe
uma opção diferente daquelas que são esperadas, nenhuma das operações irá
executar. Para evitar essa situação, existe um teste no final do laço que verifica se
a opção informada corresponde a uma das esperadas. O usuário irá digitar nova-
mente a opção até que ela corresponda a uma opção válida para o programa.
Outro detalhe importante é que, ao contrário das outras estruturas de controle
vistas até agora, após a condição no comando do-while, é necessário finalizar
o comando com o “;”.

3.3 Considerações
As estruturas de repetição contêm, assim como as estruturas condicionais,
comandos de desvio de fluxo. Entretanto esses desvios são direcionados a trechos
que se repetem dentro do programa, sendo muito úteis em uma grande quanti-
dade de situações.
Em termos de sintaxe dos comandos de repetição, vale lembrar que, a
exemplo dos condicionais, somente é necessário utilizar os símbolos “{“ e “}”
para abertura e fechamento dos blocos de comandos internos quando esses
blocos contiverem dois ou mais comandos. Vejamos alguns trechos de código
que exemplifiquem essa afirmação.

...
for(i=0; i<15; i++)
printf(“iteração numero %d”,i);
...

...
while ( (x % 2) != 0)
x = x * 2;
...

...
do
n = n +5;
while(n < 50);

O primeiro exemplo apenas imprime na tela o valor da variável de controle


usada na condição de parada e incremento. O segundo multiplica o valor da
variável x por 2, enquanto o resto da divisão de x por 2 for diferente de zero.
Finalmente, o terceiro exemplo incrementa o valor da variável n em 5 enquanto
esse valor for menor do que 50.

316 1º PeRÍodo • análise e desenvolvimento de sistemas • unitins


aula 3 • algoRitmos e PRogRamação

Note que esses exemplos são apenas trechos de programas e não podem ser
executados da maneira como foram apresentados. Para que executem normal-
mente, deve-se completá-los de acordo com a estrutura de um programa em
linguagem C apresentado na aula um.

Nesta aula, estudamos as estruturas de controle do tipo estruturas de repe-


tição, que são comandos importantes para a atividade de programação e sem
as quais os programadores teriam um trabalho bem mais complicado nas mãos.
Vimos diferentes tipos de estruturas de repetição e algumas implicações de sua
utilização: for – estrutura de repetição com número definido de passos; while –
estrutura de repetição com teste no início; do-while: estrutura de repetição com
teste no final.

1. Escreva um programa que solicite ao usuário que digite um valor numérico


e apresente na tela o valor do fatorial desse número.

2. Qual das alternativas a seguir implementa a sintaxe do comando for de


maneira incorreta?

a) for ( i = 0; i < 7; i++ ) c) for ( i<15; i > 25; i++ )

b) for ( i = n; i < n; i = i * 2 ) d) for (i=0; i < 10; i = i )

3. Escreva um programa, solicite que o usuário informe valores inteiros até que
seja informado um valor negativo e apresente a soma de todos os valores
digitados antes do valor negativo ser informado, para que ele não seja
contabilizado também.

4. Assinale a alternativa correta.

a) Estruturas de repetição não podem ter como um dos seus comandos


internos uma estrutura de decisão.

b) Para compor o bloco de comandos de um laço de repetição, podemos


usar quaisquer comandos, mesmo que estejam em desacordo com a
estrutura de um programa (visto na aula um).

c) Caso o programador cometa erros no teste condicional para perma-


nência em um laço de repetição, o programa pode repetir o laço
indefinidamente.

d) Todas as anteriores estão incorretas.

unitins • análise e desenvolvimento de sistemas • 1º PeRÍodo 317


aula 3 • algoRitmos e PRogRamação

Os objetivos desta aula estão ligados aos conceitos e utilização das estru-
turas de repetição. Assim vamos verificar se os objetivos foram atingidos por
meio da correção das atividades.
Na atividade um, devemos implementar um programa que determine o
fatorial de um número. Logo devemos recordar o que é o fatorial. Fatorial é um
conceito da matemática, e o fatorial de um número é a multiplicação dele por
todos os inteiros menores do que o próprio número, até atingir o valor 0. Por
definição, o fatorial de 0 é 1. Exemplo: 5! = 5 x 4 x 3 x 2 x 1 = 120.
O programa que soluciona essa atividade deve utilizar um laço de repetição
que efetua as sucessivas multiplicações. Veja a solução a seguir.

#include <stdio.h>

int main( )
{
int n, i, fat=1;

printf(“informe um valor numerico: “);


scanf(“%d”,&n);

for(i = n; i > 0; i--)


fat = fat * i;

printf(“\nFatorial = %d\n”,fat);

return;
}

A atividade dois pode ser resolvida facilmente observando-se a sintaxe do


comando for, que tem a seqüência: for(inicialização; condição; incremento). A
única alternativa que não se enquadra nessa seqüência é a (c), já que a expressão
i<15 não pode ser usada para inicialização da variável de controle.
Na atividade três, devemos observar que serão somados somente os valores
informados antes do primeiro valor negativo, por isso iremos utilizar uma estru-
tura de repetição com teste no início. O programa a seguir implementa a solução
dessa atividade.

318 1º PeRÍodo • análise e desenvolvimento de sistemas • unitins


aula 3 • algoRitmos e PRogRamação

#include <stdio.h>

int main( )
{
int n, soma=0;

printf(“Informe um valor: “);


scanf(“%d”,&n);

while(n >= 0) // teste condicional


{
soma = soma + n;

printf(“Informe um valor: “);


scanf(“%d”,&n);
}

printf(“Soma = %d”,soma);
return;
}

Observe que o valor numérico é informado pelo usuário antes do teste condi-
cional, e que essa leitura é feita novamente dentro do laço while. Nesse caso,
isso é necessário, pois, se o primeiro valor digitado for menor do que zero, o
corpo do laço não deverá executar nenhuma vez, ao contrário das estruturas
com teste no final.
A atividade quatro pode ser comentada por alternativas. A primeira está
incorreta, pois o aninhamento de comandos condicionais e de repetição é muito
utilizado em programação. A segunda está, também, incorreta, pois nem todos
os comandos podem ser usados em qualquer parte do programa, por exemplo,
a inclusão de bibliotecas. A terceira afirmação está correta, pois se o teste lógico
sempre retornar verdadeiro, o laço se repetirá indefinidamente. E como a terceira
alternativa está correta, a quarta está incorreta.

ASCENCIO, Ana Fernanda Gomes; CAMPOS, Edilene Aparecida Veneruchi de.


Fundamentos da programação de computadores: algoritmos, Pascal e C/C++.
São Paulo: Pearson Prentice Hall, 2003.
SHILDT, Herbert. C Completo e Total. São Paulo, Makron Books, 2001.

unitins • análise e desenvolvimento de sistemas • 1º PeRÍodo 319


aula 3 • algoRitmos e PRogRamação

Estudaremos as estruturas de dados homogêneas, também conhecidas como


matrizes. Em linguagem C, as matrizes podem ter várias dimensões. As mais
comumente usadas são as unidimensionais, também chamadas de vetores, e as
bidimensionais, chamadas simplesmente de matrizes.

Anotações

320 1º PeRÍodo • análise e desenvolvimento de sistemas • unitins


aula 4 • algoRitmos e PRogRamação

Aula 4
Matrizes e vetores

Esperamos que, ao final desta aula, você seja capaz de:


• compreender o conceito de estruturas de dados homogêneas;
• escrever programas que utilizem vetores e matrizes em linguagem C.

Na última aula, estudamos as estruturas de repetição, um importante


recurso para a atividade de programação de computadores. Para trabalhar
bem com vetores e matrizes, é muito útil dominar a utilização dos laços de
repetição. Além disso, os conceitos básicos da linguagem, como tipos de
dados, variáveis e operadores serão de grande importância para a cons-
trução de programas que manipulem vetores e matrizes. Se houver dúvidas,
retome seus estudos!

A utilização de variáveis em um programa depende da aplicação que está


sendo desenvolvida. Programas complexos, ou extensos, em geral, utilizam
uma maior quantidade de variáveis para armazenar os dados manipulados.
Já programas simples podem utilizar um número muito reduzido de variáveis.
Obviamente, é necessário controlar o conteúdo de todas as variáveis de um
programa para que se tenha certeza de que será um programa bem sucedido.
Entretanto nem sempre é tarefa fácil.
Algumas situações em programação requerem que diversos valores, refe-
rentes a um mesmo contexto, ou item de dados, sejam armazenados em variá-
veis do programa. Vamos supor que estamos construindo um programa voltado
para a área de estatística, e que devemos armazenar valores para ao final deter-
minar a média aritmética desses valores. A seguir apresentamos um programa
que efetua justamente essa operação.

unitins • análise e desenvolvimento de sistemas • 1º PeRÍodo 321


aula 4 • algoRitmos e PRogRamação

#include <stdio.h>
#include <conio.h> // para a função getch()

int main( )
{
int num, cont=0;
char op;
float media, soma = 0;

do
{
printf(“digite um número:”);
scanf(“%d”, &num); // numero informado pelo
usuário

soma = soma + num; // soma de todos os números


digitados
cont++; // quantidade de números
digitados

printf(“\ntecle n para sair qualquer tecla para


continuar\n”);
op = getch(); // opção de digitar um novo número
ou não

}while ( op != ‘n’); // teste no final do laço de


repetição

media = soma / cont;


printf(“\nmédia aritmética dos valores digitados: %.2f”,
media);
getch(); // aguarda uma tecla para finalizar o programa
return;
}

Observe o programa e note que os valores digitados pelo usuário são armaze-
nados na variável num, acumulados na variável soma e a quantidade de valores
informados é armazenada na variável cont. Após somar o valor de cada número
digitado e incrementado o contador (cont), o usuário tem a opção de informar mais
um valor ou sair do laço de repetição. Ao sair do laço, é impresso na tela a soma de
todos os valores dividida pela quantidade, o que caracteriza a média aritmética.

322 1º PeRÍodo • análise e desenvolvimento de sistemas • unitins


aula 4 • algoRitmos e PRogRamação

A única ressalva a ser feita nesse programa é que, se desejar efetuar alguma
outra operação sobre os valores digitados, apenas teremos a soma desses valores.
Não teríamos como saber qual foi o primeiro, o segundo, ou o quinto valor digitado.
Qual seria a solução? Declarar uma variável para cada valor digitado pelo usuário?

Essa solução seria inviável por algumas razões, tais como um número de
variáveis possivelmente muito grande para manipular. Outra alternativa seria
agrupar os valores digitados em uma estrutura que permitisse acessá-los poste-
riormente. Considerando que todos os valores seriam do mesmo tipo, essa estru-
tura poderia ser chamada de homogênea. Em programação existem dois tipos
de estruturas homogêneas bastante conhecidas: vetores e matrizes. Esses são
conceitos importantes que estudaremos nesta aula.

4.1 Matrizes
Segundo Schildt (2001), uma matriz é uma coleção de variáveis do mesmo
tipo que é referenciada por um nome comum. Um elemento específico em uma
matriz é acessado por meio de um índice, que sempre é um número inteiro.
Como qualquer variável de um programa, uma matriz ocupa posições na
memória computador. Sendo uma coleção de variáveis, uma matriz pode ocupar
diversas posições de memória para abrigar todas as variáveis que compõem a
matriz. Uma característica interessante das matrizes é que cada um dos elementos
ocupam posições contíguas (subseqüentes) na memória.
Em Linguagem C, uma matriz pode ter uma ou mais dimensões. A próxima
sessão fala sobre matrizes unidimensionais, que também conhecemos como
vetores ou arrays.

4.1.1 Vetores (matrizes unidimensionais)


A sintaxe de declaração de vetores (assim chamaremos as matrizes unidi-
mensionais daqui por diante) é apresentada a seguir.

tipo nome_do_vetor[tamanho];

Nessa declaração o tipo especifica o tipo de cada um dos elementos que irão
compor o vetor. O nome_do_vetor é um identificador comum que referencia o con-
junto de elementos. E o tamanho indica a quantidade de elementos que irão compor
a estrutura. Vejamos alguns exemplos de declaração de vetores em Linguagem C.

float numeros[10];
int vet_int[5];
int vetor2[8];

unitins • análise e desenvolvimento de sistemas • 1º PeRÍodo 323


aula 4 • algoRitmos e PRogRamação

Observe que os vetores declarados têm tamanhos diferentes, conseqüen-


temente, serão armazenados em porções de memória de tamanhos diferentes.
Vale ressaltar que o primeiro elemento de um vetor em Linguagem C sempre é
referenciado pelo índice 0, ou seja, podemos dizer que ele ocupa sempre a
posição 0 do vetor.
Dessa maneira, um vetor de tamanho 5, como o vet_int declarado ante-
riormente, tem cinco posições reservadas na memória para armazenar valores
inteiros. Já que a posição inicial é 0, então os índices que podem ser utili-
zados são 0, 1, 2, 3 e 4. Dessa maneira, para qualquer vetor em linguagem
C, de tamanho n, temos disponíveis as posições de 0 a n-1. Vamos adaptar o
programa apresentado anteriormente para a utilização de um vetor para arma-
zenar os dados digitados.

#include <stdio.h>
#include <conio.h> // para a função getch()

int main( )
{
int i, num;
int vetor_int[10]; // vetor capaz de armazena 10
valores inteiros
float media, soma =0;

for(i=0; i< 10; i++) // primeiro laço de repetição


{
printf(“digite um número:”);
scanf(“%d”, &num); // numero informado pelo
usuário

vetor_int[i] = num; // armazena o valor digitado na


posição
// ‘i’ do vetor

soma = soma + num; // soma de todos os números


digitados
} // final do primeiro laço de repetição for

media = soma / 10; // armazena a media na variável media

printf(“\nVALORES\n”);

324 1º PeRÍodo • análise e desenvolvimento de sistemas • unitins


aula 4 • algoRitmos e PRogRamação

for(i=0; i< 10; i++) // apresentação dos valores


informados
printf(“\n%d”,vetor_int[i]);

printf(“\nmédia aritmética dos valores digitados: %f”,


media);
getch(); // aguarda uma tecla para finalizar o programa
return;
}

Observe a declaração do vetor vetor_int, que é uma estrutura homogênea capaz


de armazenar 10 valores inteiros. O corpo do primeiro laço for solicita ao usuário
que informe valores inteiros, e armazena cada um desses valores em uma posição
do vetor vetor_int. Além disso, efetua a soma dos valores informados acumulando
o resultado na variável soma. Esse processo se repete 10 vezes, como determina
a condição de permanência do laço. Ao sair do primeiro laço, o valor da média
aritmética é calculado e armazenado na variável média. Para finalizar o programa,
os valores digitados e a média aritmética desses valores são apresentados na tela.
Da maneira como foi apresentado, os valores informados pelo usuário são
lidos para a variável num e depois copiados para as posições do vetor. Porém
esses valores poderiam ser diretamente atribuídos ao vetor. O seguinte trecho
ilustra como isso pode ser feito.

...
for(i=0; i< 10; i++) // primeiro laço de repetição
{
printf(“digite um número:”);
scanf(“%d”, &vetor_int[i]);
soma = soma + vetor_int[i]; //soma dos números
digitados

} // final do laço de repetição for


...

Note que a leitura do valor na função scanf o símbolo “&” indica a posição
de memória da variável que irá armazenar o valor informado. Note, também,
que os valores são armazenados nas posições já indicadas pelo índice.
Quando estudamos vetores, é natural que surjam questionamentos como
“Qual o limite máximo para o tamanho de um vetor?” ou ainda “Se tem 10 posi-
ções reservadas, é obrigado que se utilize todas?”.

unitins • análise e desenvolvimento de sistemas • 1º PeRÍodo 325


aula 4 • algoRitmos e PRogRamação

Saiba mais

Na declaração de um vetor, especificamos o tamanho (quantidade de posi-


ções reservadas), por exemplo, 10. Porém a linguagem C não impede que se
utilizem índices maiores do que os que foram expressamente reservados, ou
seja, um vetor de tamanho 10 tem disponíveis as posições de 0 a 9, mas nada
impede que acessemos a posição 10, 11, 12, etc. Entretanto não há garan-
tias de que essas posições “adicionais” terão seu conteúdo protegido contra o
acesso de outra variável, já que ao sistema operacional somente foram solici-
tadas 10 posições. Nesse contexto, cabe ao programador que desejar utilizar
posições além do definido na declaração do vetor, controlar a quantidade de
posições utilizadas.
Podemos entender um vetor como uma variável que agrupa diversos valores
do mesmo tipo, funcionando como um conjunto de elementos. Assim como qual-
quer variável, um vetor pode ser inicializado na sua declaração. Veja a seguir
um exemplo de inicialização de um vetor.

int vet_inteiros[5] = {10, 15, 25, 35, 45};

Observe que a variável vet_inteiros é um vetor de cinco posições. Nessa decla-


ração, é atribuído à variável um conjunto de valores. De acordo com as especi-
ficações da linguagem C, cada um desses valores será armazenado na posição
correspondente dentro do vetor. Nesse caso, o vetor se encontrará da seguinte
maneira após a execução desse comando de declaração e inicialização.

Figura 1 Representação gráfica de um vetor.

Conteúdo = 10 15 25 35 45
Índice = 0 1 2 3 4

O vetor apresentado na Figura 1 é uma representação esquemática da atri-


buição de valores às posições correspondentes. Note que todas as posições
estão ocupadas, mas quando se utiliza um vetor, não é necessário preencher
todas as posições com valores conhecidos. A utilização de cada posição do
vetor depende da funcionalidade do programa em questão.

326 1º PeRÍodo • análise e desenvolvimento de sistemas • unitins


aula 4 • algoRitmos e PRogRamação

4.1.2 Matrizes (bidimensionais)


Outro caso comum em programação é a necessidade de armazenar valores
em mais de uma dimensão. Diversas aplicações matemáticas utilizam o conceito
de matrizes e, se considerarmos que um vetor pode ser entendido como uma lista
de elementos em seqüência, podemos, também, entender uma matriz como um
conjunto de listas de valores do mesmo tipo. Veja um exemplo de declaração de
uma matriz bidimensional.

int mat_int[3][3];

Veja nessa declaração a utilização de dois colchetes para especificar o


tamanho da matriz, justamente pelo fato de que a matriz tem duas dimensões,
geralmente chamadas de linhas e colunas. A figura a seguir ilustra esquematica-
mente a declaração anterior de uma matriz.

Figura 2 Representação gráfica de uma matriz.

Colunas
0 1 2
0
Linhas 1
2

Assim como em vetores, cada uma das posições de uma matriz pode ser
acessada individualmente por meio de índices. Nesse caso, dois índices são
necessários para indicar um elemento, um correspondente à linha, e outro corres-
pondente à coluna.
Podemos descrever ainda uma matriz como sendo um vetor de vetores.
Note que cada linha da matriz é um conjunto de elementos do mesmo tipo, que
podem ser acessados por meio de seus índices. Esse mesmo raciocínio pode ser
usado para descrever uma matriz com mais de duas dimensões. A quantidade
de dimensões de uma matriz pode variar de acordo com as necessidades dos
programadores. Vejamos um exemplo de programa, puramente didático, utili-
zando matrizes.

Pensando sobre o assunto

unitins • análise e desenvolvimento de sistemas • 1º PeRÍodo 327


aula 4 • algoRitmos e PRogRamação

#include <stdio.h>

int main()
{
int mat_inteiros[3][3]; // matriz de 3 linhas e 3
colunas
int i,j; // índices para linhas e colunas

for(i=0; i<3; i++) // laço para percorrer as linhas


{
for(j=0; j<3; j++) // laço para percorrer as
colunas
{
mat_inteiros[i][j] = i+j; // atribuição de valor a
uma posição

} // fim do primeiro laço
} // fim do segundo laço

for(i=0; i<3; i++) // percorre linhas


{
for(j=0; j<3; j++) // percorre colunas
printf(“%d “,mat_inteiros[i][j]); // imprime
elemento na tela

printf(“\n”); // quebra de linha para separar as


linhas
}
return;
}

Esse programa apenas preenche uma matriz de dimensão 3 x 3 (três linhas


por três colunas) com valores baseados nos índices (que em muitas ocasiões são
as mesmas variáveis de controle dos laços de repetição), e imprime os elementos
da variável mat_inteiros na tela.
Pensando em uma aplicação prática para a utilização de matrizes bidimensio-
nais? Podemos citar um programa que armazene as notas dos alunos de uma deter-
minada turma. Suponha que uma turma tenha no máximo 15 alunos, para os quais
sejam armazenadas quatro notas e a média final. Considerando que as matrizes
são conjuntos de valores do mesmo tipo, não é possível (como veremos na próxima

328 1º PeRÍodo • análise e desenvolvimento de sistemas • unitins


aula 4 • algoRitmos e PRogRamação

aula), em uma estrutura homogênea, armazenar valores numéricos e caracteres.


Por isso usaremos nesse exemplo uma matriz com 15 linhas (uma para cada aluno
que pode ser representado) e cinco colunas (quatro notas e a média final).

#include <stdio.h>
#include <conio.h>

/* constantes */
#define MAX 15 // máximo de elementos
#define MEDIA 4 // número da coluna que armazena a média

int main(){
float mat_alunos[MAX][5], soma; // declaração da matriz
int quant, i, j; // e outras variáveis

printf(“\nPROGRAMA PARA ARMAZENAR NOTAS\n\n”);

// laço 1 para informar a quantidade de alunos


do {
printf(“Informe a quantidade de alunos: “);
scanf(“%d”, &quant);

// exige uma quantidade válida


if(quant > MAX)
printf(“Quantidade inválida, informe
novamente\n\n”);
} while(quant > MAX); // fim do laço 1

printf(“\n\n INICIANDO A DIGITAÇÃO DAS NOTAS\n\n”);

for(i=0; i<quant; i++) //laço 2: entrada de


valores por aluno
{
printf(“Aluno %d:\n”,i+1); // mensagem na tela
soma = 0;

for(j=0; j<4; j++) // laço 3 para informar as notas


{
printf(“Nota %d: “,j+1);
scanf(“%f”,&mat_alunos[i][j]); // lê uma nota
soma = soma + mat_alunos[i][j]; // acumula as
4 notas

unitins • análise e desenvolvimento de sistemas • 1º PeRÍodo 329


aula 4 • algoRitmos e PRogRamação

}
mat_alunos[i][MEDIA] = soma/4; // determina a
média e ar-
printf(“\n”); // mazena na pos. 4 de
ca-
} // da linha da matriz
// fim do laço 2

printf(“\n\n”); // quebra de linha para


visualização

/* apresenta na tela os valores informados */


for(i=0; i<quant; i++)
{
printf(“Aluno %d “,i+1); // variação de linha

for(j=0; j<4; j++) // variação de coluna (até a


pos. 3)
{
printf(“- %.2f”,mat_alunos[i][j]); //
notas
}
printf(“, Media = %.2f\n”,mat_alunos[i][MEDIA]);
// media
}
getch(); // aguarda a digitação de alguma tecla
antes de
} // finalizar o programa

Observe no programa a declaração das constantes MAX e MEDIA, usadas


para indicar a quantidade máxima de alunos e a posição da linha na qual deve
ser armazenada a média das notas. Dessa maneira, as quatro notas serão arma-
zenadas nas posições 0, 1, 2 e 3, enquanto a média será armazenada na posição
4 de cada linha. Nesse exemplo, cada linha representa as notas de um aluno.
Veja que a constante MAX é usada para determinar a quantidade de linhas
de mat_alunos na sua declaração. A quantidade de alunos, informada pelo
usuário, fica armazenada na variável quant, que não deve ter valor maior do
que MAX, condição que é verificada no laço 1, comentado no programa.
No laço 2, identificado em comentário, são percorridas as linhas de mat_
alunos, apresentando na tela o número do aluno (i+1). No laço 3, também
identificado por meio de comentário, são informadas as notas dos alunos, sendo

330 1º PeRÍodo • análise e desenvolvimento de sistemas • unitins


aula 4 • algoRitmos e PRogRamação

que cada iteração do laço varia o índice das colunas, até a coluna 3, já que a
coluna 4 é reservada para a média das notas. Após informar as quatro notas,
a média é determinada e armazenada na posição 4 de cada linha, de acordo
com o especificado na constante MEDIA. Esse processo se repete quant vezes,
até que as notas e médias de todos os alunos sejam armazenadas na matriz.
Antes de finalizar o programa, os dados são apresentados na tela, também
utilizando dois laços para variar linhas e colunas. Chamamos atenção para o
comando printf usado para apresentar as notas e a média. Note que, na string
de formatação é usado “%.2f”. O “2” para indicar que os valores do tipo float
devem ser apresentados apenas com duas casas decimais.
Esse programa inclui uma prática comum em programação: o tratamento de
erros. Considerando que há um limite de armazenamento para uma matriz, não
é adequado que o usuário informe valores além do que pode ser armazenado.
Em contrapartida, o trabalho de preencher toda a matriz, quando em alguns
casos pode haver poucos alunos, pode incomodar o usuário. Por isso é solici-
tado ao usuário que informe a quantidade de alunos. Porém o usuário pode se
equivocar e informar um valor além da quantidade máxima. Nesse programa,
não há problemas, pois o programa irá ultrapassar o laço 1 somente quando
uma quantidade válida de alunos for informada.

Nesta aula, estudamos conceitos, aplicações e detalhes da implementação


de estruturas de dados homogêneas, ou seja, que armazenam valores do mesmo
tipo. Esse conceito é muito importante e, aliado aos conhecimentos adquiridos nas
aulas anteriores, permite-nos criar programas com funcionalidades mais claras.
Os dois tipos de estruturas estudados foram: vetores – também chamados de
arrays armazenam valores do mesmo tipo em uma única dimensão; e matrizes –
conhecidas como arrays bidimensionais, armazenam valores indexados por dois
índices, correspondentes a linhas e colunas.

1. Vetores são coleções de variáveis referenciadas por um único nome, e aces-


sadas individualmente por meio de um índice. Sabemos que uma variável
ocupa espaço na memória. Como determinar a quantidade de espaço utili-
zado por um vetor?

2. Qual das declarações a seguir corresponde a uma declaração correta de


vetores ou matrizes em linguagem C?
a) int vetor [2.5]; // duas posições e meia
b) char matriz [2,4]; // duas linha e quatro colunas

unitins • análise e desenvolvimento de sistemas • 1º PeRÍodo 331


aula 4 • algoRitmos e PRogRamação

c) int matriz {20} {14}; // 20 linhas e 14 colunas


d) int vetor [15 – 5]; // 15 menos 5 posições

3. Escreva um programa que determine a soma dos elementos da diagonal prin-


cipal de uma matriz 3x3, cujos elementos foram informados pelo usuário.

4. Sobre vetores e matrizes, assinale a alternativa correta:


a) o tamanho de um vetor não pode ultrapassar 255 posições;
b) uma matriz deve sempre ter o mesmo número de linhas e colunas;
c) em um vetor, cada elemento é acessado por meio de um índice; já em
matrizes bidimensionais, são necessários dois índices para acessar um
elemento;
d) em um vetor, todos os elementos têm o mesmo tipo de dados; já em
matrizes, cada linha pode ser de um tipo diferente.

As atividades desta aula são bem simples, mas resolvendo-as podemos


conferir se os objetivos de compreender os conceitos de vetores e matrizes foram
atingidos. Vamos lá!
A atividade um é um questionamento válido: quanto espaço um vetor ocupa
na memória? Isso depende do tipo do vetor, se é um vetor de inteiros, carac-
teres, etc. Depende também da quantidade de posições alocadas. Podemos
determinar o espaço de memória de um vetor por meio de um cálculo simples:
tamanho do tipo de dados x quantidade de posições. Cada elemento de um tipo
ocupa espaço necessário para uma variável daquele tipo, para determinar o
total, basta multiplicar pela quantidade de posições. O espaço necessário para
cada tipo pode ser visto na aula um, ou obtido diretamente utilizando a função
sizeof da linguagem C.
A resposta da atividade dois pode ser facilmente obtida digitando um programa
e compilando-o. A única alternativa que não resultará em erro é a letra (d), pois é
a única na qual o(s) índice(s) corresponde (m) a um valor inteiro.
A atividade três será comentada por meio da sua solução implementada no
programa a seguir.

#include <stdio.h>

int main()
{

332 1º PeRÍodo • análise e desenvolvimento de sistemas • unitins


aula 4 • algoRitmos e PRogRamação

int mat_inteiros[3][3]; //declaração da matriz


int i, j, diagonal=0; // índices e valor da soma
// dos elementos da diagonal
for(i=0; i<3; i++) //percorre as linhas
{
for(j=0; j<3; j++) // percorre as colunas
{
printf(“\nInforme o valor: “); // leitura dos
valores
scanf(“%d”,&mat_inteiros[i][j]);
}
}

for(i=0; i<3; i++) // percorre a matriz


diagonal = diagonal + mat_inteiros[i][i]; // mesmo
índice para
// linhas e
colunas
printf(“Diagonal = %d\n”,diagonal); // resultado
na tela
}

Na atividade quatro, as duas primeiras alternativas estão incorretas, pois o


programador pode utilizar a quantidade de posições que forem necessárias e
não há restrições quanto ao número de linhas e colunas de uma matriz. A única
limitação é a memória física disponibilizada pelo sistema operacional (que é
o responsável por alocar memória para os programas). A alternativa (d) está
incorreta, pois uma das principais características dos vetores e matrizes é que
todos os elementos são do mesmo tipo, independentemente da linha ou coluna
que ocupam. Resta como resposta correta a alternativa (c).

SHILDT, Herbert. C Completo e Total. São Paulo, Makron Books, 2001.

Estudaremos as estruturas de dados heterogêneas, que podem conter


valores de diferentes tipos e também aprenderemos como definir tipos em
linguagem C.

unitins • análise e desenvolvimento de sistemas • 1º PeRÍodo 333


aula 4 • algoRitmos e PRogRamação

Anotações

334 1º PeRÍodo • análise e desenvolvimento de sistemas • unitins


aula 5 • algoRitmos e PRogRamação

Aula 5
Estruturas (struct) e tipos definidos
pelo programador

Esperamos que, ao final desta aula, você seja capaz de:


• conhecer os conceitos relativos a estruturas de dados heterogêneas e
criação de identificadores de tipos;
• implementar programas que usem struct;

Para que os objetivos desta aula sejam atingidos, é necessário que se domine
a declaração de variáreis e os tipos de dados, conceitos estudados na nossa
primeira aula.

Encontrar uma situação na qual se deseje armazenar mais de uma infor-


mação sobre um mesmo elemento de um contexto não é difícil. Basta recordar
a aula quatro, na qual apresentamos um programa que manipula informações
sobre notas de alunos. No exemplo citado, eram armazenadas as notas e médias
de um grupo de alunos. Porém todas as informações eram do mesmo tipo.
Na linguagem C, e na maioria das linguagens de programação de alto
nível, essa limitação pode ser superada com a utilização de estruturas heterogê-
neas. Além disso, o programador pode criar tipos de dados, com a finalidade
de deixar o programa mais fácil de entender e, em alguns casos, tornar a ativi-
dade de programar mais produtiva. Nesta aula, abordaremos esses tópicos por
meio de conceitos e de exemplos. Vamos lá!

5.1 Struct
Em linguagem C, uma estrutura é uma coleção de variáveis referenciadas
pelo mesmo nome, fornecendo uma maneira conveniente de se ter informações

unitins • análise e desenvolvimento de sistemas • 1º PeRÍodo 335


aula 5 • algoRitmos e PRogRamação

diferentes, mas relacionadas, agrupadas em um único item (SHILDT, 2001). A


cada uma das variáveis que compõem uma estrutura chamamos de elementos
ou campos.
A utilização de estruturas heterogêneas é muito útil em situações nas quais
se deseja agrupar informações de diferentes tipos. Por exemplo, nome e idade
de uma pessoa. A sintaxe da declaração de uma estrutura, em linguagem C, é
apresentada a seguir.

struct nome_da_estrutura
{
campos
};

Nessa declaração, a palavra reservada struct informa ao compilador que um


modelo de estrutura está sendo criado (SHILDT, 2001). Após a palavra struct, a
estrutura é nomeada por meio de um identificador único, tal como o identificador
utilizado para uma variável. Cada um dos campos que irão compor a estrutura
deve ser declarado como uma variável agregada, e a declaração dos campos
é feita dentro de um bloco de programa, delimitado por “{“ e “}”. Para finalizar
o comando, utiliza-se o símbolo terminador de comandos da linguagem, o “;”.
Veja um exemplo.

struct pessoa // definição 1


{
char nome[30];
int idade;
};

É importante observar que essa construção não é uma declaração de vari-


ável, mas corresponde à criação de um tipo. Dessa maneira, podemos declarar
uma variável da seguinte maneira:

struct pessoa p1;

Essa declaração cria uma variável chamada p1 do tipo struct pessoa. Cada
variável desse tipo terá dois campos, nome e idade. O identificador p1 indica
a variável, e cada um dos campos é referenciado por seu próprio nome. Uma
variável do tipo struct pessoa também pode ser declarada no momento da defi-
nição da estrutura. Seguindo esse método, a declaração da variável p1 pode
ser feita como segue.

336 1º PeRÍodo • análise e desenvolvimento de sistemas • unitins


aula 5 • algoRitmos e PRogRamação

struct pessoa // definição 2


{
char nome[30];
int idade;
} p1, p2, p3;

Nessa declaração, além de definido o modelo da estrutura pessoa ou


simplesmente struct pessoa, foram declaradas as variáveis p1, p2 e p3, todas
do tipo struct pessoa. No caso de necessitar de apenas uma única variável de
uma determinada estrutura, podemos ainda usar a seguinte declaração:

struct // definição 3
{
char nome[30];
int idade;
} p1;

Nesse caso, uma variável p1 é declarada nos moldes da estrutura à qual


está ligada. Perceba que na declaração 1 foi especificado apenas o identi-
ficador da estrutura, enquanto na declaração 3 foi definido apenas o nome
da variável, enquanto na definição 2 foram especificados ambos (estrutura
e variáveis).

5.1.1 Acessando os campos de uma estrutura


Considerando uma struct como uma variável multivalorada, um questiona-
mento válido é: como acessar cada um dos campos? Em matrizes (unidimensio-
nais ou bidimensionais) a resposta seria simples: por meio do seu índice. Porém
em estruturas heterogêneas não podemos utilizar índices para indicar qual dos
campos queremos acessar. Para se acessar um campo de uma variável multi-
valorada, especifica-se o nome da variável e, em seguida, o nome do campo,
separados por ponto.
O seguinte programa ilustra a declaração de uma estrutura, a declaração de
uma variável e o acesso aos campos da estrutura.

#include <stdio.h>

struct pessoa // definicao da estrutura


{
char nome[30]; // campo nome
int idade; // campo idade

unitins • análise e desenvolvimento de sistemas • 1º PeRÍodo 337


aula 5 • algoRitmos e PRogRamação

}p1; // variavel do tipo struct pessoa

int main()
{
printf(“Digite o nome:”); // leitura pelo teclado
gets(p1.nome); // do campo nome

printf(“Digite a idade:”); // leitura pelo teclado


scanf(“%d”,&p1.idade); // do campo idade

printf(“%s, %d\n”,p1.nome, p1.idade); //escreve na


tela
system(“pause”);

return;
}

Podemos perceber, no início do programa, a definição da estrutura pessoa e


a declaração da variável p1 do tipo struct pessoa. Na seqüência, é feita a leitura
dos valores para os campos nome e idade. É importante observar como são
acessados os campos de uma estrutura (nome_da_variável.nome_do_campo).
É costume entre muitos programadores referenciar o nome do campo antes do
nome da variável. Nesse exemplo, poderíamos dizer “o nome de p1”, ou “a
idade de p1”. Outros preferem referenciar o nome da variável antes do nome
do campo, por exemplo “p1 ponto nome”.
A atribuição de valores à variável p1 no programa anterior é feita campo
a campo. Porém podemos atribuir um valor diretamente à estrutura, como variá-
veis comuns, quanto temos valores do mesmo tipo. Veja no exemplo a seguir.

#include <stdio.h>

struct pessoa // definicao da estrutura


{
char nome[30]; // campo nome
int idade; // campo idade
}p1,p2; // variavel do tipo struct pessoa

int main()
{
printf(“Digite o nome:”); // leitura pelo teclado

338 1º PeRÍodo • análise e desenvolvimento de sistemas • unitins


aula 5 • algoRitmos e PRogRamação

gets(p1.nome); // do campo nome

printf(“Digite a idade:”); // leitura pelo teclado


scanf(“%d”,&p1.idade); // do campo idade

p2 = p1; // atribuição de valor a uma estrutura

printf(“%s, %d\n”,p2.nome, p2.idade); //escreve na


tela
system(“pause”);

return;
}

Esse exemplo é quase igual ao anterior, a diferença é que ilustra a atri-


buição de valor a uma estrutura. Note que a leitura campo a campo é feita para
a variável p1, e os valores escritos na tela são dos campos da variável p2. Isso
é possível porque antes de imprimir os valores na tela, no comando p2=p1, todo
o conteúdo de p1 é copiado para p2.

5.2 Definição de tipos


A definição de um tipo pelo programador pode ser feita, em linguagem C,
utilizando o comando typedef. Esse comando permite dar um novo nome a um
tipo já existente.
Em princípio, pode parecer de pouca utilidade, mas imagine que se
escreve um programa que manipula muitas variáveis do tipo int e, por alguma
razão, todas devem ser alteradas para o tipo float. Se usarmos a seguinte
construção:

typedef int numerico;

Definiremos que, nesse programa, todos os valores numéricos serão referen-


ciados pelo mesmo tipo (numerico) e serão idênticos. Ao perceber que se deve
mudar o tipo dos valores de int para float, não será necessário alterar todas as
declarações de variáveis, mas apenas a definição feita no comando typedef
para a seguinte forma:

typedef float numerico;

unitins • análise e desenvolvimento de sistemas • 1º PeRÍodo 339


aula 5 • algoRitmos e PRogRamação

A declaração de uma variável do tipo numerico é feita como qualquer outra


declaração de variável, por exemplo:

numerico valor1;

Dessa maneira, cria-se uma variável chamada valor1 do tipo numerico. É


importante lembrar que, na verdade, não são criados novos tipos, mas maneiras
diferentes de referenciar tipos já existentes.
Podemos também usar o comando typedef em conjunto com a definição de
estruturas. Por exemplo, definir uma estrutura e, na mesma construção, incluir um
nome para ser utilizado nas declarações de variáveis do tipo dessa estrutura.
Por exemplo:

typedef struct
{
char nome[30];
float nota1;
float nota2;
float media;
} aluno;

Essa declaração define uma estrutura com quatro campos e cria o nome
aluno como um identificador de tipo para essa estrutura. Assim é possível a
seguinte declaração:

aluno a1;

Essa declaração cria uma variável chamada a1 do tipo aluno.

Saiba mais

5.3 Matrizes de estruturas


Por meio da simples observação de programas em geral, pode-se perceber
a grande utilidade dos conceitos de estruturas (struct) e matrizes. A união desses

340 1º PeRÍodo • análise e desenvolvimento de sistemas • unitins


aula 5 • algoRitmos e PRogRamação

dois conceitos representa uma maneira simples e organizada de criar conjuntos


de elementos idênticos, cada um armazenando valores de diferentes tipos.
Resumindo, criar matrizes de estruturas.
Se revisarmos o programa utilizado como exemplo na aula anterior, das
notas de alunos, temos uma situação clara na qual não somente as notas dos
alunos devem ser armazenadas, mas também outras informações, como o nome
do aluno.
Vamos refazer o exemplo utilizando uma matriz de estruturas.

#include <stdio.h>
#include <conio.h>

/* constantes */
#define MAX 15 // máximo de elementos

typedef struct // definição de identificador de


tipo
{ // baseado em uma estrutura
char nome[30];
float nota1;
float nota2;
float media;
}aluno;

int main()
{
aluno vet_alunos[MAX]; // declaração do vetor
int quant, i; // e outras variáveis

printf(“\nPROGRAMA PARA ARMAZENAR NOTAS\n\n”);

// laço 1 para informar a quantidade de alunos


do {
printf(“Informe a quantidade de alunos: “);
scanf(“%d”, &quant);

// exige uma quantidade válida


if(quant > MAX)
printf(“Quantidade inválida, informe
novamente\n\n”);
} while(quant > MAX); // fim do laço 1

unitins • análise e desenvolvimento de sistemas • 1º PeRÍodo 341


aula 5 • algoRitmos e PRogRamação

printf(“\n\n INICIANDO A DIGITAÇÃO DAS NOTAS\n\n”);

for(i=0; i<quant; i++) //laço 2: entrada de valores


{
printf(“Aluno %d:\n”,i+1); // mensagem na tela

printf(“Nome: “);
scanf(“%s”,&vet_alunos[i].nome); // lê o nome
do aluno

printf(“Nota 1: “);
scanf(“%f”,&vet_alunos[i].nota1); // lê uma
nota

printf(“Nota 2: “);
scanf(“%f”,&vet_alunos[i].nota2); // lê uma nota

vet_alunos[i].media=(vet_alunos[i].nota1+vet_alunos[i].
nota2)/2;
printf(“\n”);
}
// fim do laço 2

printf(“\n\n”); // quebra de linha para visualização

/* apresenta na tela os valores informados */


for(i=0; i<quant; i++)
{
printf(“Aluno: %s \n”, vet_alunos[i].nome);
printf(“Nota 1: %.2f \n”, vet_alunos[i].nota1);
printf(“Nota 2: %.2f \n”, vet_alunos[i].nota2);
printf(“Media : %.2f \n\n”, vet_alunos[i].media);
}
getch(); // aguarda a digitação de alguma tecla
antes de
} // finalizar o programa

Observe, no início do programa, a definição do identificador de tipo aluno,


baseado em uma estrutura. Observe, também no início da função main, que é

342 1º PeRÍodo • análise e desenvolvimento de sistemas • unitins


aula 5 • algoRitmos e PRogRamação

declarado um vetor, chamado vet_alunos, do tipo aluno. Essa declaração cria


um vetor no qual cada posição é uma estrutura com dois campos, como definido
no início do programa.
O mesmo tratamento em relação à quantidade máxima de elementos é
feita (revisar programa da aula anterior) e, na seqüência, as informações
dos alunos (nome, nota1, nota2 e media) são dadas, além de efetuado o
cálculo da média das notas. Ao final, os valores armazenados são apresen-
tados na tela.
Esse é um exemplo simples, mas que já apresenta uma funcionalidade
definida e, apesar de ser um exemplo didático, poderia ser usado em algumas
situações práticas para facilitar o trabalho de calcular as médias dos alunos.

Nesta aula, estudamos os conceitos de estruturas de dados heterogêneas.


Comumente chamadas de structs por programadores em linguagem C, elas têm
bastante utilidade. Vimos também como utilizar o comando typedef para criar
identificadores de tipos.

1. Observe as afirmações a seguir.


I. Cada um dos valores armazenados em um registro pode ser chamado
de campo.
II. Um registro tem funcionamento exatamente igual a um vetor, porém
pode armazenar valores de tipos diferentes.
II. A declaração de um registro, por meio da instrução struct, também pode ser
entendida como uma definição de um tipo criado pelo programador.

Estão corretas as afirmações:


a) I, II e III; c) somente a I;
b) I e III; d) somente a III.

2. Observe a declaração de registro a seguir.

struct tempo
{
int horas;
int minutos;
};

unitins • análise e desenvolvimento de sistemas • 1º PeRÍodo 343


aula 5 • algoRitmos e PRogRamação

Escreva um programa em que o usuário digite valores para hora e


minutos. O programa deve converter o tempo em horas e minutos para
segundos e apresentar o resultado na tela. Ex.: 1 hora e 1 minuto =
3660 segundos.

3. Qual das alternativas a seguir implementa corretamente a declaração de


uma matriz de estruturas?
a) struct n
{
int valor1; int valor2;
};

b) struct n
{
int valor1; int valor2;
}matriz;

c) struct n
{
int valor1; int valor2;
}matriz[2,3];

d) struct n
{
int valor1; int valor2;
}matriz[2][3];

4. Qual a quantidade de memória necessária para armazenar a struct decla-


rada na atividade dois?

A atividade um é puramente conceitual, vamos comentar as afirmações.


A primeira e a terceira são verdadeiras, mas a segunda é falsa, já que em
vetores os elementos são do mesmo tipo e acessados por um índice, enquanto
que nas structs esses elementos podem ser de tipos diferentes e são acessados
por seus identificadores. Portanto a alternativa correta é a opção (b).

A solução para a atividade dois deve incluir a estrutura sugerida em um


programa e usar uma fórmula simples: s = h * 3600 + m * 60. Em que s é
a quantidade de segundos, h é a quantidade de horas e m a quantidade de
minutos. O programa a seguir implementa essa solução.

344 1º PeRÍodo • análise e desenvolvimento de sistemas • unitins


aula 5 • algoRitmos e PRogRamação

#include <stdio.h>
struct tempo
{
int horas;
int minutos;
};
int main()
{
struct tempo t1;
int segundos;
printf(“Horas = “);
scanf(“%d”,&t1.horas);
printf(“Minutos = “);
scanf(“%d”,&t1.minutos);
segundos = t1.horas * 3600 + t1.minutos * 60;
printf(“\n\nSegundos = %d\n”,segundos);
}

Na atividade três, são apresentadas algumas declarações de estru-


turas. Algumas corretas e outras não. Vamos analisá-las. A primeira define
corretamente uma estrutura, porém não inclui a declaração de uma vari-
ável, portanto não satisfaz ao enunciado. A segunda alternativa também
define corretamente uma estrutura e declara uma variável que, apesar de
ser chamada de matriz, não é uma colação de elementos do tipo struct n.
A terceira alternativa contém erros (na definição das dimensões da matriz),
não podendo ser considerada correta. Já a quarta alternativa define corre-
tamente uma struct e declara uma matriz com dimensão 2 x 3. Portanto a
resposta correta é a letra (d).
A atividade quatro é uma reflexão sobre algo que já foi comentado na aula
anterior, sobre a quantidade de memória necessária para armazenar variáveis
compostas. No caso das matrizes, basta multiplicar a quantidade de posições
pelo tamanho do tipo especificado. Já no caso das structs, é necessário multi-
plicar cada campo pelo tamanho do tipo especificado e somar os resultados.
Caso algum campo seja um vetor, ou matriz, utiliza-se a fórmula discutida na
aula anterior para calcular o espaço desse campo.

SHILDT, Herbert. C Completo e Total. São Paulo, Makron Books, 2001.

unitins • análise e desenvolvimento de sistemas • 1º PeRÍodo 345


aula 5 • algoRitmos e PRogRamação

Estudaremos um conceito muito importante em programação: a modu-


larização. A linguagem C é extremamente voltada para a utilização de
funções para comporem um programa, por isso esse aspecto não pode
deixar de ser estudado.

Anotações

346 1º PeRÍodo • análise e desenvolvimento de sistemas • unitins


aula 6 • algoRitmos e PRogRamação

Aula 6
Modularização – funções,
argumentos e parâmetros

Esperamos que, ao final desta aula, você seja capaz de:


• compreender os conceitos de funções, parâmetros, argumentos e retorno
de funções;
• implementar programas que utilizem funções.

Para que os objetivos desta aula sejam atingidos, é necessário que se


domine a declaração de variáreis, os tipos de dados e a noção de fluxo de
execução de um programa. Assim podemos associar os conceitos apresentados
nesta aula com os que já foram aprendidos nas aulas um, dois e três, facilitando
o entendimento.

No início da atividade de programação de computadores, os programa-


dores eram forçados a buscar o máximo de eficiência dos programas por causa
das limitações dos recursos computacionais. Por exemplo, os programadores
usavam um pequeno número de variáveis, que serviam para diversos propósitos
com a finalidade de economizar a memória disponível. Programas eram desen-
volvidos em um único bloco, o que naquela época, dado o pequeno tamanho
dos programas, era aceitável.
Na medida em que os recursos computacionais aumentaram, e a comple-
xidade das aplicações tomou proporções maiores, os programas em um único
bloco de comandos deixaram de ser plenamente satisfatórios Isso ocorria porque,
entre outros problemas, dificultava a divisão do trabalho em diversos programa-
dores e tornavam os programas grandes demais para serem controlados na sua
totalidade, sendo necessário estudá-los por partes.

unitins • análise e desenvolvimento de sistemas • 1º PeRÍodo 347


aula 6 • algoRitmos e PRogRamação

Com os recursos de memória e processamento suficientes para aplicações


de maior porte, um dos problemas da programação era atingir bons níveis de
produtividade, além de tornar os programas mais fáceis de serem compreen-
didos. Nesse contexto, surgiu o conceito de modularização, que consiste na
divisão do programa em módulos com limites definidos de maneira que cada um
deles implemente uma parte da solução do problema em questão.
Esses módulos, também chamados de sub-rotinas, ou subprogramas, são
blocos de instruções (comandos) que realizam tarefas específicas e que, uma vez
implementados, podem ser invocados diversas vezes, sempre que aquela tarefa
for necessária ao programa (ASCENIO; CAMPOS, 2003).
É comum encontrar, também, a nomenclatura funções para referenciar sub-
rotinas em programação. Essas funções representam uma das características mais
importantes da linguagem C (SCHILDT, 2001). Nessa linguagem, costuma-se definir
um programa como sendo uma coleção de funções, em que uma delas tem papel
fundamental, a função main, que já foi apresentada a você em aulas anteriores.
Essa função é conhecida por ser a função principal, que marca o ponto
de início da execução do programa. À medida que o programa é executado
(partindo sempre da função main), outras funções são chamadas, então ocorrem
desvios de fluxo que permitem que uma chamada de função seja atendida e, em
seguida, a execução retorne para o ponto imediatamente posterior ao da chamada
efetuada. Esses e outros conceitos serão abordados nesta aula, aproveite!

6.1 Funções
Uma função em linguagem C pode ser declarada, ou definida, de acordo
com o seguinte modelo:

tipo_de_retorno nome_da_função (lista de parâmetros)


{
bloco de comandos
}

Cada um dos elementos que compõem o modelo citado tem sua importância,
e os explicaremos mais detalhadamente a seguir.
O nome_da_função é um identificador, tal como o nome de uma variável
do programa, e deve ser usado de maneira única, justamente para referenciar
a função declarada. O tipo_de_retorno indica um tipo de valor que deverá ser
retornado pela função por meio de um comando específico para esse fim.
Em programação, existem dois tipos de sub-rotinas, as que retornam valor
(genuinamente chamadas de funções) e as que não retornam valor (em muitas
linguagens chamadas de procedimentos). Em linguagem C, utiliza-se apenas a

348 1º PeRÍodo • análise e desenvolvimento de sistemas • unitins


aula 6 • algoRitmos e PRogRamação

nomenclatura funções, que podem ou não retornar um valor. Uma função para a
qual foi especificado um tipo de retorno deverá retornar um valor do tipo especi-
ficado, enquanto que uma função para a qual foi definido o tipo de retorno void
não retorna valor algum.
Uma função pode ter parâmetros, que podem ser considerados os valores
de entrada da função. Parâmetros funcionam como variáveis que irão arma-
zenar temporariamente os valores informados como argumentos. A declaração
dos parâmetros é semelhante à declaração de variáveis, mas com a restrição
de sempre ser necessário especificar o tipo e o nome do parâmetro. Quando
houver mais de um parâmetro, as suas declarações devem ser separadas por
vírgulas. O bloco de comandos de uma função varia de acordo com a tarefa
que a função executa.
O exemplo a seguir ilustra os conceitos apresentados até aqui.

#include <stdio.h>

int dobro(int num) // cabeçalho da função


{ // início do bloco de comandos
int d;

d = num * 2;
return d; // retorno da função
}

void main()
{
int valor1;
int valor2;

printf(“Informe um valor inteiro:”);


scanf(“%d”,&valor1);

valor2 = dobro(valor1); // chamada de função


printf(“Dobro = %d\n”, valor2);
}

Observe, no início do programa, a declaração da função dobro. Note que


ela tem apenas um parâmetro, que é um número inteiro. Na função main, é lido
um valor para a variável valor1, e a função dobro é chamada. Nesse momento,
podemos exemplificar as diferenças entre argumento e parâmetro: argumento
é o valor informado na chamada da função (nesse caso, será o conteúdo da

unitins • análise e desenvolvimento de sistemas • 1º PeRÍodo 349


aula 6 • algoRitmos e PRogRamação

variável valor1), e parâmetro é a variável que irá armazenar temporariamente o


valor do argumento (nesse caso, num é um parâmetro).
No momento em que a função dobro é chamada, há um desvio no fluxo
de execução do programa, que é direcionado da função main para a função
dobro, e ao parâmetro num é atribuído automaticamente o valor informado como
argumento. O valor de num*2 é atribuído à variável d cujo valor é retornado
pelo comando return (comando de retorno de funções). Após o comando return,
que efetua o direcionamento da execução da função novamente para o local
em que é feita a chamada dessa função, o valor retornado pela função dobro é
atribuído à variável valor2, que tem seu conteúdo impresso na tela.

Pensando sobre o assunto

6.1.1 Escopo de funções, variáveis locais e variáveis globais


Funções são blocos independentes dentro do programa. Em linguagem C, o
código de uma função é privativo àquela função e não pode ser acessado por
nenhum comando de outra função, exceto para fazer uma chamada à função em
questão (SHILDT, 2001). Esse controle de acesso é definido por meio das regras
de escopo da linguagem.
As variáveis do programa também estão sujeitas às regras de escopo e
podem ser classificadas em dois tipos principais: variáveis locais e variáveis
globais. As variáveis locais são aquelas declaradas internamente às funções. No
exemplo anterior, podemos identificar diversas variáveis locais, como valor1 e
valor2, que são internas à função main, e a variável d, interna à função dobro.
Os parâmetros de uma função podem ser considerados variáveis locais,
porém permitem a comunicação entre diferentes funções, em que uma determi-
nada função “A” faz uma chamada a uma função “B” enviando argumentos, e
a função “B” recebe esses argumentos armazenando-os nos parâmetros decla-
rados. A outra mão dessa comunicação está no valor de retorno que a função
“B” retorna para a função que efetuou a sua chamada.
Uma variável local é conhecida apenas na função na qual foi declarada. O
seu valor somente pode ser alterado por comandos de dentro da própria função.
Por serem isoladas, variáveis locais declaradas em diferentes funções podem
ter o mesmo nome, já que estão dentro de trechos independentes e distintos do
programa. Veja o exemplo a seguir.

350 1º PeRÍodo • análise e desenvolvimento de sistemas • unitins


aula 6 • algoRitmos e PRogRamação

int dobro(int num) // cabeçalho da função


{
int soma;

soma = num + num;


return d; // retorno da função
}

float media(float n1, float n2) // cabeçalho da função


{
float soma;

soma = n1 + n2;
return(soma/2); // retorno da função
}

Observe nas funções dobro e media que ambas têm uma variável soma.
Porém de tipos diferentes e utilizadas em escopos diferentes.
Para que uma variável esteja disponível para ser utilizada em qualquer
função do programa, esta deve ser declarada como uma variável global. A
declaração de variáveis globais é feita fora das funções, por exemplo, pode ser
feita após a inclusão das bibliotecas ou definição das constantes do programa.
Vejamos um exemplo.

#include <stdio.h>

int soma;

int dobro(int num) // cabeçalho da função


{ // início do bloco de comandos
soma = num + num;
}

void main()
{
int valor1;
printf(“Informe um valor inteiro:”);
scanf(“%d”,&valor1);

printf(“Dobro = %d\n”, soma);


}

unitins • análise e desenvolvimento de sistemas • 1º PeRÍodo 351


aula 6 • algoRitmos e PRogRamação

Observe que a variável soma é declarada fora de qualquer função do


programa. Dessa maneira, ela pode ser usada tanto na função dobro quanto na
função main. Note que o valor de soma é alterado na função dobro ao receber a
soma de num com ela mesma (resultando no dobro do valor) e, na função main,
o valor dessa variável global é impresso na tela.

6.1.2 Passagem de parâmetros


Como já afirmado anteriormente, os parâmetros podem ser considerados
como os valores de entrada de uma função. Apesar de serem usados para
armazenar os valores dos argumentos, os parâmetros podem ser usados como
qualquer variável local (SCHILDT, 2001).
Quando os argumentos são valores constantes, é natural pensar que as modifica-
ções nesses valores não sejam permanentes. Mas quando os argumentos são valores
de variáveis, as alterações feitas no escopo de uma função são persistentes?
A resposta a esse questionamento se apóia em dois conceitos muito importantes
na programação: passagem de parâmetros por valor e por referência. Na passagem
por valor, o valor dos argumentos é copiado para os parâmetros da função. Dessa
maneira, os valores originais dos argumentos são preservados. Veja um exemplo.

int dobro(int num) // cabeçalho da função


{
num = num * 2;
return num; // retorno da função
}

A função dobro desse exemplo recebe como argumento um valor para o parâ-
metro num. Esse parâmetro recebe o valor dele mesmo multiplicado por 2, ou seja,
o seu valor é alterado dentro da função. Ao retornar o valor para a função chama-
dora, o parâmetro num é apagado da memória e as alterações são perdidas. Em
princípio, pode parecer um “mal negócio” usar a passagem de parâmetros por
valor, porém é uma maneira de garantir que variáveis tenham seus valores alte-
rados somente no escopo das funções nas quais foram declaradas. É uma maneira
de “manter o controle” sobre os dados manipulados pelo programa.
Na passagem de parâmetros por referência, os valores não são copiados
para os parâmetros, mas o endereço de onde estes se encontram na memória é
informado à função. Dessa maneira, os dados originais são manipulados dentro
da função chamada, permitindo assim que alterações sejam persistentes quando
a função que recebeu os argumentos for finalizada.
Uma das formas mais comuns de se implementar a passagem de parâmetros
por referência é utilizando ponteiros. Embora esse conceito somente seja expli-
cado com detalhes em outro momento, ele será informalmente abordado aqui.

352 1º PeRÍodo • análise e desenvolvimento de sistemas • unitins


aula 6 • algoRitmos e PRogRamação

Um ponteiro é uma variável que armazena endereços de memória. Por isso,


na passagem de parâmetros por referência, usam-se ponteiros para informar
à função chamada onde estão os valores assumidos como argumentos para a
função. O programa a seguir ilustra a passagem de parâmetros por referência.

#include <stdio.h>

void dobrar(int *num) // ponteiro como parâmetro


{
*num = *num * 2;
}

void main()
{
int valor1;

printf(“Informe um valor inteiro:”);


scanf(“%d”,&valor1);

dobrar(&valor1); // chamada da função dobrar

printf(“Dobro = %d\n”, valor1);


}

Observe na declaração do parâmetro int *num a presença do “ * ”. Esse


símbolo, quando usado na declaração de uma variável, indica que aquela variável
é um ponteiro. Para acessar o conteúdo de um ponteiro, usamos o mesmo símbolo
antes do nome da variável, como é feito no bloco de comandos da função dobrar.
Na chamada função (dentro da função main), note a utilização do símbolo “&”
antes do nome da variável valor1. Esse operador retorna o endereço da variável
na memória. Esse endereço será o argumento da chamada e será armazenado no
parâmetro, que poderá acessar diretamente o local onde os dados originais estão
armazenados. Dessa maneira, as alterações feitas no parâmetro são visíveis para
a função main, já que se está alterando os dados no local onde estão realmente
armazenados, e não em uma cópia, como na passagem por valor.

Saiba mais

unitins • análise e desenvolvimento de sistemas • 1º PeRÍodo 353


aula 6 • algoRitmos e PRogRamação

Outro detalhe importante que devemos citar ao final desta aula, é que a
função dobrar tem como tipo de retorno void. O que significa, na verdade, que
essa função não retorna valor algum. Alguns autores costumam nomear esse tipo
de função de procedimento, e em algumas linguagens de programação, como
Pascal, o termo procedure é utilizado para declarar sub-rotinas que não retornam
valor. Já o termo function é usado para declarar sub-rotinas que retornam valor.
Na linguagem C, todas as sub-rotinas são chamadas de funções, podendo ou
não retornar valores.

Nesta aula, estudamos sobre como implementar funções em linguagem C.


Claro que esse conceito já havia sido apresentado informalmente para que
pudéssemos escrever os primeiros programas, e somente agora, um pouco
mais detalhadamente. Todos os conceitos apresentados nesta aula são muito
importantes para o nosso desenvolvimento como programadores: argumentos;
funções que retornam valor; passagem de parâmetros por valor e por referência;
e escopo de funções.

1. Observe o programa a seguir e responda ao que é pedido.

1 - #include <stdio.h>

2 - void inverte_sinal(int *numero)


3 - {
4 - *numero = *numero * -1;
5 - }

6 - void main()
7 - {
8 - int x,y;

9 - printf(“Digite um valor inteiro:”);


10- scanf(“%d”,&x);

11- y = x;
12- inverte_sinal(x);

13- printf(“Original = %d, invertido = %d”,y,x);


14- }

354 1º PeRÍodo • análise e desenvolvimento de sistemas • unitins


aula 6 • algoRitmos e PRogRamação

a) A função “inverte_sinal” utiliza passagem de parâmetros por valor ou


referência?
b) A chamada da função “inverte_sinal” na linha 12 é feita de forma
correta? Se não, faça a correção.
c) No caso de uma chamada correta, em que o valor digitado pelo usuário
seja 5, o que será escrito na tela?

2. Escreva uma função que tenha dois parâmetros do tipo int: base e expoente.
A função deve retornar o valor da base elevada ao expoente.

3. A respeito de funções, assinale a alternativa correta.


a) Funções em linguagem C sempre retornam valores.
b) Funções do tipo int podem retornar valores de qualquer tipo numérico.
c) Uma variável que recebe o valor de retorno de uma função deve ser do
mesmo tipo (ou tipo compatível) para receber o valor retornado.
d) O valor de retorno de funções somente podem ser armazenados em
variáveis, não podem, por exemplo, serem diretamente repassados para
impressão na tela por uma função de saída de dados.

4. Observe o programa a seguir e assinale a alternativa correta.

#include <stdio.h>

int triplo(int numero)


{
return(numero*3);
}

int main()
{
int s;

s = triplo(9);

printf(“\n\nS = %d\n”,s);
}

a) Por ser um valor constante, e não uma variável, o valor 9 não pode ser
considerado um argumento para a função triplo.
b) A passagem de parâmetros para a função triplo é feita por referência.

unitins • análise e desenvolvimento de sistemas • 1º PeRÍodo 355


aula 6 • algoRitmos e PRogRamação

c) Por ser posicionada antes da função main, a função triplo será a primeira
a ser executada.
d) O parâmetro numero será instanciado como uma variável local e rece-
berá o valor 9.

Na atividade um, basta observar o que foi exposto durante a aula e a resol-
veremos facilmente. A primeira pergunta pode ser respondida de duas maneiras:
primeiro observando a declaração do parâmetro, que é um ponteiro, caracte-
rizando a passagem de parâmetros por referencia. Além disso, inverte_sinal
supõe que estamos alterando o argumento que foi passado para a função. A
persistência das alterações em um argumento também é uma característica da
passagem de parâmetros por referência.
Essa resposta nos ajuda a responder a pergunta seguinte. Podemos concluir
que há um erro na chamada da função, já que quando a passagem de parâme-
tros é feita por referência devemos informar o endereço de onde estão os valores
originais a serem manipulados. Conseguimos isso usando o operador &, que
não está sendo usado no exemplo. Devemos inseri-lo antes do nome da variável
passada como argumento para corrigir o problema. Caso a variável x tenha valor
5, o resultado impresso na tela será o nov o valor da variável x, ou seja, -5.
A atividade dois representa um caso clássico de passagem de parâmetros
por valor e retorno de função. O programa a seguir ilustra a solução.

#include <stdio.h>

int potencia(int base, int exp)


{
int i,pot=1;

if(exp == 0)
return 1;

for(i=0; i<exp; i++)


pot = pot * base;

return pot;
}

int main()

356 1º PeRÍodo • análise e desenvolvimento de sistemas • unitins


aula 6 • algoRitmos e PRogRamação

{
int s;

s = potencia(2,5);

printf(“\n\nS = %d\n”,s);
}

Observe que, na função potencia, o teste if( exp == 0) reflete a propriedade


do conceito de potenciação que diz que qualquer número elevado a zero tem
resultado 1. Note que, caso o comando return do if seja executado, o restante
da função não será.
Na atividade três, a única alternativa que se enquadra com o que foi exposto
na aula é a letra (c), pois nem sempre funções retornam valores; (a) funções
devem retornar valores de um único tipo especificado; (b) e o valor de retorno de
uma função fica disponível para qualquer operação válida da linguagem.
A resposta correta da atividade quatro é a letra (d), já que argumentos para
funções podem ser tanto valores constantes quanto conteúdo de variáveis (a); a
passagem de parâmetros para a função triplo é feita por valor; (b) e a função
main sempre é a primeira a ser executada no programa.

ASCENCIO, Ana Fernanda Gomes; CAMPOS, Edilene Aparecida Veneruchi de.


Fundamentos da programação de computadores: algoritmos, Pascal e C/C++.
São Paulo: Pearson Prentice Hall, 2003.
SHILDT, Herbert. C Completo e Total. Makron Books, 2001.

Estudaremos o conceito e funções úteis para a manipulação de strings. A


manipulação de strings é extremamente importante por ser um tipo de dados
muito comum em programas. Vale lembrar que string podem ser entendidas
simplesmente como cadeias de caracteres.

Anotações

unitins • análise e desenvolvimento de sistemas • 1º PeRÍodo 357


aula 6 • algoRitmos e PRogRamação

358 1º PeRÍodo • análise e desenvolvimento de sistemas • unitins


aula 7 • algoRitmos e PRogRamação

Aula 7
Cadeias de caracteres: Strings

Esperamos que, ao final desta aula, você seja capaz de:


• compreender os conceitos relacionados às strings;
• utilizar as funções de manipulação de cadeias de caracteres.

Para que os objetivos desta aula sejam atingidos, é necessário que você
domine a declaração de variáreis, os tipos de dados e matrizes, principalmente
as unidimensionais, que armazenam valores de um mesmo tipo em uma única
dimensão, como vimos na aula 4.

Os tipos de dados são elementos importantes em uma linguagem de progra-


mação. A linguagem C oferece bibliotecas padrão que contêm diversas funções
para facilitar a vida do programador, tais como funções matemáticas ou utili-
zadas para alocação de memória.
Outra biblioteca importante é a string.h, que contém funções de manipulação
de cadeias (ou seqüências) de caracteres. Também conhecidas com strings, as
seqüências de caracteres são um tipo importante de dados, cuja utilidade não é
questionada. Nesta aula, aprenderemos um pouco mais sobre strings.

7.1 Vetores de caracteres


Uma das utilidades mais comuns das matrizes unidimensionais é como
cadeias de caracteres. Em linguagem C, uma string é definida como uma matriz
unidimensional de caracteres que é terminada por um caractere nulo, o ‘\0’.
Vale lembrar que esse caractere ocupa espaço dentro da matriz (SHILDT, 2001).
A seguir, é apresentado um exemplo de declaração de string.

unitins • análise e desenvolvimento de sistemas • 1º PeRÍodo 359


aula 7 • algoRitmos e PRogRamação

char str[30];

Essa declaração define uma string de 30 posições (ou de tamanho 30), ou


seja, ela pode armazenar 30 caracteres, desde a posição 0 até a posição 29.
Outra maneira de se declarar uma string é utilizar um ponteiro para char.
Particularmente nesse caso, o ponteiro indica a posição inicial de uma seqüência
de caracteres. A declaração:

char *pstr;

Indica uma variável que apontará para a posição 0 de uma seqüência de


caracteres.
Como já visto na aula um, existem diversas opções para a entrada de dados
do tipo seqüência de caracteres. Dessa maneira, vamos ilustrar a utilização de
strings por meio de um programa muito simples.

#include <stdio.h>

void main()
{
char str[30]; // vetor de caracteres

gets(str); // leitura da string


puts(str); // imprime na tela
}

Esse programa simplesmente lê uma string pelo teclado e a imprime na tela.


Observe que são usadas as funções gets e puts para leitura e apresentação
(respectivamente) da variável str.

Pensando sobre o assunto

7.2 Funções relacionadas a strings


A biblioteca C padrão tem um conjunto rico e variado de funções para manipu-
lação de strings. Em uma implementação padrão, as funções para manipulação de

360 1º PeRÍodo • análise e desenvolvimento de sistemas • unitins


aula 7 • algoRitmos e PRogRamação

string estão disponíveis na biblioteca string.h. Considerando que a linguagem C não


controla os limites das matrizes (e isso inclui as strings), é necessário que o progra-
mador verifique esses limites para manter o programa robusto (SCHILDT, 2001).

7.2.1 Concatenando strings


A função strcat, que tem o seguinte cabeçalho:

char *strcat(char *str1, const char *str2)

concatena uma cópia de str2 no final de str1 e termina str1 com um caractere
nulo ou ‘\0’. enquanto str1 é modificada, str2 permanece inalterada. Note que
o primeiro argumento deverá ser uma variável, enquanto que o segundo poderá
ser uma variável ou uma constante. O programa a seguir ilustra a utilização
dessa função.

#include <stdio.h>
#include <string.h>

void main()
{
char str1[30], str2[30];

printf(“String 1 :”);
gets(str1);

printf(“\nString 2:”);
gets(str2);

strcat(str1,str2);

printf(“%\n\nString1= %s”,str1);
printf(“%\nString2= %s\n”,str2);
}

Note que a biblioteca string.h é utilizada. Supondo que as strings informadas


pelo usuário sejam “teste” e “123”, respectivamente, a saída do programa será
a seguinte:

String1= teste123
String2 = 123

unitins • análise e desenvolvimento de sistemas • 1º PeRÍodo 361


aula 7 • algoRitmos e PRogRamação

Já que str2 é concatenada ao final de str1. Essa função pode ser muito útil
em programas que conectam informações, por exemplo, para serem armaze-
nadas em arquivos de texto.

7.2.2 Comparando strings


A função strcmp tem grande utilidade, pois nos permite comparar strings. A
comparação de valores é de extrema importância na programação, já que sem
os testes condicionais não poderíamos implementar as estruturas de controle de
decisão ou de repetição. A comparação de strings pode ser usada, por exemplo,
como teste condicional para a repetição de um laço. O cabeçalho dessa função
é apresentado na seqüência.

int strcmp(const char *str1, const char *str2)

Essa função recebe como argumentos duas constantes string ou duas variá-
veis (vetores de caracteres). O retorno dessa função é um valor inteiro que reflete
a comparação entre as duas strings. Caso o valor retornado seja zero, indica
que as strings são iguais. Caso o valor retornado seja menor que zero, significa
que str1 é menor do que str2. E, finalmente, caso o valor retornado seja maior
do que zero, significa que str1 é maior do que str2. O programa a seguir ilustra
a utilização da função strcmp.

#include <stdio.h>
#include <string.h>

void main()
{
char str1[30];

do
{
printf(“Digite a senha: “);
gets(str1);
}while( strcmp(str1,”programa”) != 0 ); //
comparacao

printf(“\n\nSenha valida\n\n”);
}

Esse programa simula a solicitação de uma senha para continuar o


programa, porém o programa não executa funcionalidade alguma, é apenas

362 1º PeRÍodo • análise e desenvolvimento de sistemas • unitins


aula 7 • algoRitmos e PRogRamação

ilustrativo. Observe o laço do-while no qual o programa solicita que o usuário


informe uma “senha”. O laço é repetido enquanto o retorno da função strcmp,
que compara a string str1 (digitada pelo usuário) com a constante “programa”
(que simula a senha), for diferente de zero, ou seja, enquanto a string digitada
for diferente de “programa”.

Saiba mais

7.2.3 Copiando o conteúdo de uma string para outra


A atribuição direta de valores para strings nem sempre é usual em progra-
mação. A linguagem C fornece a função strcpy, que copia o conteúdo de uma
string para outra, retornando um ponteiro para a primeira. O cabeçalho dessa
função é apresentado a seguir.

char *strcpy(char *str1, const char *str2)

Vale lembrar que a string que receberá o conteúdo copiado deve ter
tamanho suficiente para receber a outra string, que pode ser uma constante ou
o conteúdo de uma variável. O seguinte trecho de programa ilustra a utilização
da função strcpy.

...
char str[40];
strcpy(str,”Algoritmos e programação”);
...

O trecho de programa faz com que a constante “Algoritmos e programação”


seja copiado para a cadeia de caracteres str.

Saiba mais

unitins • análise e desenvolvimento de sistemas • 1º PeRÍodo 363


aula 7 • algoRitmos e PRogRamação

7.2.4 Determinando o tamanho de uma string


O tamanho de uma string é uma informação importante em diversas situ-
ações. Por exemplo, a validação de dados informados pelos usuários de um
programa. Suponha que um determinado programa manipula, entre outras infor-
mações, números de CPF. Um CPF tem 11 caracteres (desconsiderando pontos e
hífen), portanto, ao informar um número de CPF para o programa em questão, o
usuário não deverá informar strings com tamanho exatamente 11.
A função strlen retorna justamente o comprimento de uma string terminada por
um caractere nulo. Pode receber como argumentos uma constante ou o conteúdo
de uma variável. O programa a seguir ilustra a utilização dessa função.

#include <stdio.h>
#include <string.h>

void main()
{
char str1[30];

do
{
printf(“Digite uma string: “);
gets(str1);
printf(“\n\nTamanho da string: %d\n”, strlen(str1) );

}while( strcmp(str1,”fim”) != 0 );

printf(“\n\nAté Mais\n\n”);
}

Observe que no laço do-while o usuário deve digitar strings e o tamanho de


cada string digitada é apresentado na tela, usando o retorno da função strlen.
Note que o comprimento, ou tamanho de uma seqüência de caracteres, corres-
ponde à quantidade de caracteres que a compõem. A condição para sair do
laço é que o usuário digite a string fim.

Nesta aula, estudamos alguns conceitos importantes sobre o tratamento


de strings em linguagem C, como a comparação, concatenação e a cópia de
strings. Vimos também algumas funções muito utilizadas e como implementar
programas que as utilizam.

364 1º PeRÍodo • análise e desenvolvimento de sistemas • unitins


aula 7 • algoRitmos e PRogRamação

1. Escreva uma função que retorne a quantidade de ocorrências de um deter-


minado caractere dentro de uma string. Dica: utilizar a função strlen para
determinar o tamanho da string.

2. Em relação a strings, assinale a alternativa correta.


a) O caractere ‘\0’ somente é usado como terminador de strings sem
tamanho definido (ponteiro para char).
b) Ao contrário dos vetores de números inteiros, para vetores de char,
conhecidos como strings, o compilador garante que não se utilizará
nenhuma posição além do tamanho pré-definido.
c) Ao copiar uma string para outra, a string que recebe o conteúdo deve
ter, no mínimo, o tamanho da string copiada.
d) Todas as anteriores estão incorretas.

3. Escreva um programa que “corte” uma string, deixando apenas a primeira


palavra de uma frase.

4. Aponte a alternativa que apresenta apenas funções de manipulação de


strings que retornam valores inteiros:
a) strlen, strcat c) strcat, strcpy
b) strlen, strcpy d) strlen, strcmp

As atividades um e três são relacionadas à resolução de problemas cons-


truindo programas, enquanto a segunda e a quarta são puramente conceituais.
Para solucionar a questão proposta na atividade um, devemos criar uma
função com dois parâmetros: uma string e um caractere para ser buscado dentro
dessa string. O valor retornado pela função deve ser do tipo int. A seguir é apre-
sentada uma proposta de solução.

int conta_char(char *str, char ch)


{
int i, quant=0;

for(i=0; i<strlen(str); i++)


if(str[i] == ch)

unitins • análise e desenvolvimento de sistemas • 1º PeRÍodo 365


aula 7 • algoRitmos e PRogRamação

quant ++;

return quant;

Dentro do laço de repetição, sempre que o caractere da posição em questão


for igual ao caractere buscado, a variável quanto será incrementada. Ao final
retorna-se o valor desta variável.
A atividade dois apresenta opções de maneira que somente a opção (c) está
de acordo com os conceitos que foram apresentados na aula. A letra (a) está
errada, pois o caractere citado é considerado terminador de strings com e sem
tamanho definido. A letra (b) está incorreta, pois mesmo para vetores de char
(strings), não há garantias na utilização de índices além do tamanho alocado
para a variável. Finalmente, estando a letra (c) correta, a afirmação de que todas
as outras estão erradas torna-se inválida.
Para resolver a atividade três, podemos usar uma abordagem parecida com
a solução da atividade um, procurando, dentro de uma string, o caractere ‘ ‘
(espaço), e inserindo nessa posição o caractere ‘\0’, que é o terminador da
string. Dessa maneira, a partir do caractere inserido, a string será desconside-
rada. O programa a seguir implementa essa solução.

#include <stdio.h>
#include <string.h>

void corta(char *str)


{
int i;

for(i=0; i<strlen(str); i++)


if(str[i] == ‘ ‘)
str[i] = ‘\0’;
}

int main()
{
char string[80];

gets(string);
corta(string);
printf(“\n\nS = %s\n”,string);
}

366 1º PeRÍodo • análise e desenvolvimento de sistemas • unitins


aula 7 • algoRitmos e PRogRamação

Na atividade quatro, vamos lembrar que strcpy copia uma string para outra
e retorna o endereço da string, strcat concatena duas strings e retorna o ende-
reço da string resultante, strcmp retorna 0 se as strings forem iguais, um número
positivo se a primeira for maior e um número negativo se a segunda for maior, e
a função strken retorna o tamanho de uma string. Assim apenas strlen e strcmp
retornam valores inteiros. Resposta correta, letra (d).

Anotações

unitins • análise e desenvolvimento de sistemas • 1º PeRÍodo 367


aula 7 • algoRitmos e PRogRamação

368 1º PeRÍodo • análise e desenvolvimento de sistemas • unitins


EQUIPE UNITINS
Organização de Conteúdos Acadêmicos Thereza Patrícia Pereira Padilha

Coordenação Editorial Maria Lourdes F. G. Aires

Revisão Lingüístico-Textual Kyldes Batista Vicente

Gerente de Divisão de Material Impresso Katia Gomes da Silva

Revisão Digital Helena Carolina Costa e Lima Prestes

Projeto Gráfico Irenides Teixeira


Katia Gomes da Silva
Ilustração Geuvar S. de Oliveira

Capas Igor Flávio Souza

Equipe EADCON
Coordenador Editorial William Marlos da Costa

Assistentes de Edição Ana Aparecida Teixeira da Cruz


Janaina Helena Nogueira Bartkiw
Lisiane Marcele dos Santos
Programação Visual e Diagramação Denise Pires Pierin
Kátia Cristina Oliveira dos Santos
Monica Ardjomand
Rodrigo Santos
Sandro Niemicz
William Marlos da Costa
Você está recebendo o material da disciplina Matemática para
Computação. É lógico! É óbvio! Claro! Essas são algumas das expressões
que usamos freqüentemente para dizer que algo é mais do que evidente ou
com significado inconfundível. Porém, às vezes usamos essas expressões sem
prestar muito atenção ao seu real significado e à sua importância.
Para esta disciplina, esperamos que você aprimore seus métodos de
raciocínio lógico para sistematizar as atividades tanto no trabalho quanto em
casa. Assim, o conhecimento obtido nesta disciplina auxiliará você em muitas
e muitas situações do cotidiano. O objetivo deste material é abordar os prin-

Apresentação
cipais conceitos da lógica na área da Computação. Para isso, os tópicos a
serem apresentados, separados por aula, estão descritos a seguir.
Na aula um, apresentaremos uma visão geral das teorias dos conjuntos,
enfocando possíveis relações e operações entre conjuntos quaisquer. Na aula
dois, analisaremos as sentenças usadas no dia-a-dia, com intuito de verificar
um encadeamento lógico entre as mesmas e, assim, identificar uma conclusão,
caso exista, reconhecendo assim um argumento.
Na aula três, abordaremos o alfabeto e as fórmulas bem formadas da
lógica proposicional, que é o tipo de lógica mais simples, demonstrando
o comportamento dos conectivos lógicos usados com proposições. Na aula
quatro, apresentaremos o método da tabela-verdade, como um mecanismo
de encontrar o valor lógico de proposições simples e compostas, bem como
classificaremos as tabelas de acordo com os valores obtidos como resultado.
Na aula cinco, os conceitos de implicação e equivalência lógica serão
apresentados, bem como um processo de prova de argumentos. Na aula seis,
por sua vez, estudaremos a lógica de predicados, que é uma extensão da lógica
proposicional, visando a apresentar o seu alto poder de expressão. Por fim,
na aula sete, apresentaremos a álgebra de Boole e mapas de Karnaugh.
Prof.ª Thereza Padilha
EMENTA
Teoria dos conjuntos (diagramas de Euler-Venn). Análise e simbolização
de sentenças de linguagem cotidiana. Tabela verdade. Lógica de predi-
cados de primeira ordem. Álgebra booleana. Simplificação de funções e
mapas de Karnaugh.
Plano de Ensino

OBJETIVOS
• Apresentar conceitos básicos da linguagem de programação Java
para programação visual.
• Apresentar os principais componentes utilizados para a construção
de interfaces gráficas.
• Proporcionar a compreensão aos alunos sobre a utilização de
banco de dados em aplicações visuais, utilizando componentes e
conceitos de conexão.
• Demonstrar aos alunos o potencial do desenvolvimento de aplica-
ções visuais e sua possibilidade de interação com os usuários.
• Demonstrar aos alunos a confecção de relatórios utilizando a tecno-
logia Java.

CONTEÚDO PROGRAMÁTICO
• Componentes visuais básicos
• Notação de conjuntos e elementos
• Relação entre conjuntos, operação entre conjuntos
• Estudo dos diagramas de Venn
• Estudo das sentenças da Linguagem Natural
• Argumentos
• Estudo de proposições simples e compostas
• Conectivos lógicos
• Princípios fundamentais da lógica
• Tabela-verdade
• Tautologia, contradição e contingência
• Leis de equivalência e implicação lógica
• Processo de Prova
• Lógica de Predicados
• Álgebra de Boole
• Funções Booleanas
• Mapa de Karnaugh

BIBLIOGRAFIA BÁSICA
CHAUI, Marilena. Convite à filosofia. São Paulo: Ática, 2003.
COPI, Irving M. Introdução à lógica. 2. ed. São Paulo: Mestre Jou, 1978.
MORTARI, Cezar A. Introdução à lógica. São Paulo: UNESP, 2001.
SOUZA, J. N. Lógica para ciência da computação: fundamentos de linguagem,
semântica e sistemas de duração. Rio de Janeiro: Campus, 2002.

BIBLIOGRAFIA COMPLEMENTAR
ALENCAR FILHO, Edgar. Iniciação à lógica matemática. São Paulo: Nobel, 2003.
ARANHA, Maria Lúcia de Arruda; MARTINS, Maria Helena Pires. Filosofando:
introdução à filosofia. 3. ed. São Paulo: Moderna, 2003.
DAGHLIAN, Jacob. Lógica e álgebra de Boole. 4. ed. São Paulo: Atlas, 1995.
KELLER, Vicente; BASTOS, Cleverson L. Aprendendo Lógica. Petrópolis: Vozes,
2000.
SOARES, Edvaldo. Fundamentos de lógica: elementos da lógica formal e teoria
da argumentação. São Paulo: Atlas, 2003.

unitins • análise e desenvolvimento de sistemas • 1º PeRÍodo 373


aula 1 • matemática PaRa comPutação

Aula 1
Teoria dos conjuntos

Esperamos que, ao final desta aula, você seja capaz de:


• realizar as operações matemáticas relacionadas à teoria dos conjuntos;
• representar graficamente os elementos dos conjuntos, bem como seus
relacionamentos usando os diagramas de Venn.

Os conteúdos sobre a Teoria dos Conjuntos estudados nos ensinos funda-


mental e médio são relevantes para a compreensão desta aula. Caso tenha
dúvidas, procure revisar o material estudado.

O estudo da teoria dos conjuntos é importante para vários ramos da área


da informática e computação, tais como: lógica, banco de dados, inteligência
artificial, entre outros.
Nesta primeira aula da nossa disciplina, iremos abordar os conceitos da
teoria dos conjuntos. Para isso, apresentaremos a forma de notação (represen-
tação) dos conjuntos, elementos e operações. Serão descritas também algumas
leis já definidas na literatura, envolvendo as relações entre conjuntos. Por fim,
apresentaremos os diagramas de Venn como um mecanismo de representação
dos conjuntos, elementos e seus relacionamentos.

1.1 Definição e notação


Segundo Mortari (2001), os conjuntos podem ser definidos como coleções
(classes, reuniões ou agregados) não-ordenadas de objetos.
A notação usada para representar um conjunto é por meio de letras maiús-
culas. Os elementos, por sua vez, são representados por letras minúsculas,

unitins • análise e desenvolvimento de sistemas • 1º PeRÍodo 375


aula 1 • matemática PaRa comPutação

quando se trata de letras. Os elementos do conjunto são separados por vírgula


(mais comum) ou por ponto-e-vírgula. Assim, temos os seguintes exemplos:

Nesses exemplos, temos a apresentação do conjunto A contendo uma


coleção de números, iniciando com dois e terminando em 16, com um incre-
mento de dois. No conjunto B, temos um conjunto das cinco vogais do nosso
alfabeto. No conjunto C, temos uma especificação limitada dos números
pertencentes ao conjunto, embora não seja possível a sua visualização. Já no
conjunto D, embora tenhamos uma descrição, é possível identificar, facilmente,
quais valores pertencem a este conjunto. Assim, podemos dizer que A,B, C e
D são conjuntos limitados, ou seja, possui um conjunto específico de elementos
ou objetos.
Outro aspecto que podemos analisar nos conjuntos limitados é a sua
cardinalidade, isto é, a quantidade de elementos que um conjunto finito
possui. A cardinalidade é denotada por n(<conjunto>). Considerando estes
conjuntos, teríamos:
• n(A) = 8
• n(B) = 5
• n(C) = 99
• n(D) = 25

Pensando sobre o assunto

O conjunto E, por sua vez, é constituído por todos os elementos que são
maiores ou igual a 20. Nesse caso, usamos a variável x para designar a exis-
tência de um elemento, sendo que este precisa ser maior ou igual a 20. Neste
caso, lê-se “x, tal que x é maior ou igual a 20”. O conjunto F é composto por todos

376 1º PeRÍodo • análise e desenvolvimento de sistemas • unitins


aula 1 • matemática PaRa comPutação

os números inteiros pares. De forma similar ao conjunto D, a partir da descrição,


é possível identificar quais os elementos que pertencem a este conjunto. No caso
dos conjuntos E e F, especificamente, podemos ainda denominá-los de ilimitados,
ou seja, não existe um limite definido.

1.2 Conjuntos especiais


Dentre os conjuntos existentes, podemos destacar a existência de três
conjuntos especiais, que são: vazio, unitário e universo (IEZZI; MURAKAMI,
1993). Vamos analisar e exemplificar agora cada um desses conjuntos.
O conjunto vazio, como seu próprio nome indica, é vazio, isto é, não possui
elementos. Assim, podemos representar um conjunto vazio da seguinte maneira:
Ø ou { }
É importante ressaltar que o conjunto vazio faz parte de todo conjunto, ou
seja, é um subconjunto de todos os outros conjuntos.

Pensando sobre o assunto

Um conjunto é chamado unitário quando este possui somente um elemento.


Alguns exemplos de conjunto unitário são:

Z = {a}

V = {Maria}
E um conjunto universo refere-se a reunião de todos os elementos dos conjuntos
em questão. A notação utilizada para denotar o conjunto universo é U.

Pensando sobre o assunto

1.3 Relações entre conjuntos


Pertinência é uma relação que podemos analisar se elementos pertencem,
ou seja, fazem parte de um determinado conjunto. Para isso, utilizamos o
símbolo ∈ para representar tal fato. Assim, podemos exemplificar a relação

unitins • análise e desenvolvimento de sistemas • 1º PeRÍodo 377


aula 1 • matemática PaRa comPutação

de pertinência da seguinte forma, observando os conjuntos definidos na


seção 1.1:
(lê-se: 2 pertence ao conjunto A)
(lê-se: d pertence ao conjunto B)
(lê-se: 52 pertence ao conjunto C )
(lê-se: 500 pertence ao conjunto E )
Quando não se tem essa relação de pertinência entre elemento e conjunto,
dizemos que tal elemento não pertence ao conjunto. Nesse caso, usamos o
símbolo ∉ para mostrar esta informação. Dessa maneira, alguns exemplos desta
relação são:
(lê-se: 3 não pertence ao conjunto A)
(lê-se: t não pertence ao conjunto B)
(lê-se: 57 não pertence ao conjunto D )
(lê-se: 1 não pertence ao conjunto F )
Além de verificar se um elemento pertence ou não a um conjunto, podemos
ainda investigar sobre a ocorrência de subconjuntos. Dizemos que um conjunto
é subconjunto do outro quando todos os elementos do primeiro conjunto estão
presentes também no segundo. Dessa maneira, dizemos que o primeiro conjunto
está contido no segundo. Analisando os conjuntos C e D definidos anteriormente,
podemos afirmar que o conjunto D está contido em C. De modo notacional,
podemos expressar esta relação da seguinte forma:

Outra forma de expressar este fato é por meio da relação contém. Assim,
podemos dizer que C contém D, que pode ser expresso da seguinte forma:

A partir desses relacionamentos entre conjuntos, é possível identificar


algumas propriedades genéricas, que são (MORTARI, 2001):




O conjunto de todos os subconjuntos de um conjunto dado A é chamado de
conjunto potência (ou conjunto das partes) de A, denotado por P(A) (WIKIPEDIA,
2008). Podemos ainda definir assim:

378 1º PeRÍodo • análise e desenvolvimento de sistemas • unitins


aula 1 • matemática PaRa comPutação

O número total de subconjuntos possíveis num conjunto qualquer é encon-


trado pela fórmula 2n, em que n refere-se à quantidade de elementos do conjunto.
Considerando S = {1,3,5}, então teremos 23 = 8. Assim, teremos oito subcon-
juntos. São eles:
• { }
• {1}
• {3}
• {5}
• {1,3}
• {1,5}
• {3,5}
• {1,3,5}
Ou seja, P(S) = {{ },{1},{3},{5},{1,3},{1,5},{3,5},{1,3,5}}.
Além dessas operações, podemos também estabelecer a igualdade entre
dois conjuntos. Neste caso, dizemos que dois conjuntos são iguais quando
possuem exatamente os mesmos elementos. Considerando o conjunto A apre-
sentado anteriormente e o conjunto C = {2,4,6}, então podemos representar esta
igualdade da seguinte forma:
A=C

1.4 Operações sobre conjuntos


Como você já aprendeu a usar a notação dos elementos e conjuntos, vamos
agora aprender a realizar operações entre conjuntos, visando a observar quais
elementos fazem parte de uma operação e, conseqüentemente, identificando um
novo conjunto. Assim, vamos agora aprender o comportamento das operações
de união, interseção, complemento e diferença perante aos conjuntos analisados.
Para isso, considere os conjuntos U = {1,2,3,4,5,6,7,8,9,10}, A = {2,4,6} e
B = {1,2,3,4,5}.

1.4.1 União
A operação de união entre conjuntos é formada pela reunião de todos os
elementos dos conjuntos envolvidos. Para representar a operação de união
usamos o símbolo .
Por exemplo, considerando os conjuntos A e B definidos nesta seção,
podemos denotar a união destes conjuntos por . Neste caso, temos:

unitins • análise e desenvolvimento de sistemas • 1º PeRÍodo 379


aula 1 • matemática PaRa comPutação

No modo mais detalhado, a união dos conjuntos A e B pode ser visualizada


como segue:

1.4.2 Interseção
A operação de interseção entre conjuntos é formada pela reunião dos
elementos que pertencem aos conjuntos envolvidos simultaneamente. Ou seja,
estes elementos precisam pertencer aos conjuntos ao mesmo tempo. Para repre-
sentar a operação de interseção usamos o símbolo .
Por exemplo: considerando os conjuntos A e B definidos nesta seção,
podemos denotar a interseção destes conjuntos por . Neste caso, temos:

Então, observando os elementos dos conjuntos, teremos:

1.4.3 Complemento
A operação de complemento de um conjunto qualquer é formada pelos
elementos que fazem parte do conjunto universo, mas nas deste conjunto em
questão. Assim, considerando o conjunto A, o complemento de A, representado
por , pode ser definido da seguinte forma:

Ou ainda pode ser definido com a expressão . Assim, teremos


.

1.4.4 Diferença
Dados os conjuntos A e B, a operação de diferença entre conjuntos é repre-
sentada por A – B, de forma semelhante à matemática básica. Neste caso, a
diferença entre estes conjuntos é formada por elementos pertencentes à A e não
a B. Esta operação pode ser expressa pela seguinte fórmula:

Sendo assim, os elementos resultantes desta operação são:


A – B = {6}

1.5 Propriedades
Com relação às operações entre conjuntos, existem várias propriedades já
predefinidas na literatura. As principais propriedades podem ser conferidas na

380 1º PeRÍodo • análise e desenvolvimento de sistemas • unitins


aula 1 • matemática PaRa comPutação

tabela 1, na qual apresenta também um exemplo do seu comportamento usando


os conjuntos A, B e C.

Tabela 1 Propriedades de conjuntos.


NOME DA PROPRIEDADE EXEMPLO
Idempotência

Identidade

Associativa

Comutativa

Distributiva

De Morgan

Fonte: Mortari (2001).

Provando a veracidade da propriedade de De Morgan, por exemplo,


observe o seguinte raciocínio para a primeira fórmula:
1.
2.
3.
4.
5.
6.
De forma análoga ocorre com a segunda fórmula, conforme pode ser visto
a seguir:
1.
2.
3.
4.
5.
6.
A prova das outras propriedades pode ser realizada de modo similar ao
apresentado com as fórmulas da propriedade de De Morgan.

unitins • análise e desenvolvimento de sistemas • 1º PeRÍodo 381


aula 1 • matemática PaRa comPutação

1.6 Diagramas de Venn


Com intuito de representar graficamente os elementos pertencentes aos
conjuntos, foi criado um diagrama envolvendo os conjuntos existentes. Este
diagrama foi criado pelo matemático John Venn e é mais conhecido na literatura
por diagrama de Euler-Venn.
Portanto, os diagramas de Venn são representações gráficas de conjuntos
num plano (TUTORVISTA, 2008). O conjunto universal é representado por um
retângulo e os outros conjuntos normalmente são representados por círculos,
elipses ou quadrados localizados dentro do retângulo. Então um possível
diagrama Venn pode ser visualizado na figura 1.

Figura 1 Diagrama de Venn – exemplo 1.

Neste caso, temos o conjunto universo representado pelo retângulo e os conjuntos


P e Q, representados por dois círculos. Neste exemplo, o conjunto P é mais abran-
gente e o conjunto Q se encontra dentro do conjunto P. Assim, podemos concluir que
, que significa que Q está contido em P, ou seja, Q é um subconjunto de P.
Outro exemplo do diagrama de Venn pode ser visualizado na figura 2.

Figura 2 Diagrama de Venn – exemplo 2.

Neste exemplo, temos também os conjuntos P e Q. Observe que alguns elementos


podem pertencer a P e não a Q. De forma similar, podem existir elementos que
pertençam a Q e não a P. Porém, elementos comuns a este dois conjuntos podem

382 1º PeRÍodo • análise e desenvolvimento de sistemas • unitins


aula 1 • matemática PaRa comPutação

existir e, neste caso, estes precisam ser inseridos no local em que há a fusão entre
os conjuntos P e Q. E também pode ser que existam elementos que não estejam
nestes dois conjuntos e, assim, pertencendo somente ao conjunto universo.
Incorporando alguns elementos a estes três conjuntos, poderemos visualizar
este novo diagrama na figura 3.

Figura 3 Diagrama de Venn – exemplo 3.

Observe que neste exemplo, foram adicionados elementos na região do


conjunto universo, excetuando às regiões delimitadas por P e Q, bem como
para as regiões de P e Q, inclusive, a região comum ao P e ao Q. Portanto,
concluímos as seguintes operações:
• U = {1,2,3,4,5,6,7,8,9,10}




• P – Q = {3,4,9,10}
• Q – P {7,8}
Embora foram apresentados somente dois conjuntos (P e Q), um diagrama
de Venn pode possuir diversos conjuntos simultaneamente. A sobreposição de
conjuntos num diagrama é uma característica bastante normal, pois possibilita
apresentar elementos comuns aos conjuntos, ou seja, a interseção.

Nesta aula, vimos a notação usada na teoria dos conjuntos para representar
os elementos, seus conjuntos e relações entre eles. Apresentamos também as opera-
ções de união, interseção, complemento e diferença entre conjuntos. Por fim, vimos
o diagrama de Venn que é uma forma de representação gráfica dos conjuntos.

unitins • análise e desenvolvimento de sistemas • 1º PeRÍodo 383


aula 1 • matemática PaRa comPutação

1. De acordo com os princípios da teoria dos conjuntos, analise as afirmativas


a seguir, associando (V) para verdadeira e (F) para falsa e, depois, assinale
a alternativa contendo a seqüência correta.
I.
II.
III.
IV.
a) F, V, F, V c) V, V, V, F
b) V, F, V, V d) V, V, V, V

2. Considerando os conjuntos A = {2,4}, B = {1, 4, 8} e C = {3, 5, 8}, identi-


fique os elementos das seguintes operações:
a) c)
b) C – B d)

3. Construa um diagrama de Venn para representar os elementos dos conjuntos


P, Q, R e U.
• U = {1,2,3,4,5,6,7,8}







4. Considerando os conjuntos A = {2,4} e B = {1,4,8}, assinale a alternativa


correta.
a) P(B) = {{1},{4},{8},{1,4},{1,8},{4,8},{1,4,8}}
b)
c)
d)

384 1º PeRÍodo • análise e desenvolvimento de sistemas • unitins


aula 1 • matemática PaRa comPutação

Na atividade um, a resposta correta é a alternativa (d), a qual informa


que todas as afirmativas são verdadeiras. A afirmativa I está verdadeira, pois
o elemento e não pertence ao conjunto {a,b,c}. A afirmativa II também está
verdadeira porque o elemento Ø está contido em {a,b,c}. Relembrando nossos
estudos, o conjunto vazio está presente em todos os conjuntos. Logo, Ø está
presente neste conjunto também. A afirmativa III está verdadeira porque o
elemento c pertence ao conjunto formado pela união dos conjuntos informados,
sendo assim representada por {a,b,e,d,c}. A afirmativa IV é verdadeira porque
o conjunto {1,b,f}, que é a interseção entre {1,b,c,f} e {4,d,1,f,b}, contém o
conjunto {1,b}.
Na atividade dois, foram criados quatro conjuntos. Para a alternativa (a),
obtivemos . Para a alternativa (b), obtivemos C – B = {3,5}. Para a
alternativa (c), obtivemos . Para a alternativa (d), obtivemos
.
Na atividade três, considerando as informações dos conjuntos fornecidos,
podemos construir o seguinte diagrama.

Na atividade quatro, a resposta correta é a alternativa (d), pois o conjunto


vazio é um subconjunto de qualquer conjunto. Logo, o conjunto vazio é um
subconjunto de A, representado por P(A). A alternativa (a) está incorreta porque
o conjunto vazio também faz parte do conjunto das partes de P(B) e este não
se encontra na lista de subconjuntos. A alternativa (b) está incorreta porque a
cardinalidade da união dos conjuntos A e B é 4 e não 5, pois os elementos desta
união seriam 1, 2, 4 e 8, ou seja, 4 elementos. A alternativa (c) está incorreta
porque o conjunto B não está contido em A. Somente o elemento 4 de A está
inserido em B. Para B estar contido em A, seria necessário que o elemento 2
também estivesse em A.

unitins • análise e desenvolvimento de sistemas • 1º PeRÍodo 385


aula 1 • matemática PaRa comPutação

IEZZI, Gelson; MURAKAMI, Carlos. Fundamentos de matemática elementar. São


Paulo: Atual, 1993.
MORTARI, Cezar A. Introdução à lógica. São Paulo: UNESP, 2001.
ROISENBERG, Mauro. Teoria dos conjuntos. Disponível em: <http://www.inf.
ufsc.br/~mauro/ine5381/slide/Conjuntos.PDF>. Acesso em: 6 ago. 2008.
TUTORVISTA. Number theory. Disponível em: <http://www.tutorvista.com/content/
math/number-theory/number-theory.php>. Acesso em: 10 ago. 2008.
WIKIPÉDIA. Enciclopédia livre. Conjunto das partes. Disponível em: <http://pt.wiki
pedia.org/wiki/Conjunto_de_partes>. Acesso em: 11 ago. 2008.

Agora que você adquiriu um bom conhecimento sobre a teoria dos conjuntos,
vamos apresentar, na próxima aula, um estudo sobre a análise de sentenças do
cotidiano, a fim de investigar as formas do raciocínio lógico.

Anotações

386 1º PeRÍodo • análise e desenvolvimento de sistemas • unitins


aula 2 • matemática PaRa comPutação

Aula 2
Análise de sentenças

Esperamos que, ao final desta aula, você seja capaz de:


• identificar argumentos (premissas e conclusão) a partir de sentenças utili-
zadas no cotidiano;
• classificar argumentos de acordo com a forma do raciocínio, podendo
ser indutivos ou dedutivos.

Para esta aula, é importante que você tenha compreendido os conceitos


da teoria dos conjuntos, principalmente, com relação à pertinência ou não
de elementos aos respectivos conjuntos. Caso não tenha compreendido este
conceito, retorne à aula anterior e refaça as atividades propostas.

Etimologicamente, a palavra lógica vem do grego logos, que significa


palavra, expressão, pensamento, conceito, discurso ou razão (ARANHA;
MARTINS, 2003). A lógica é uma ciência que estuda as formas de raciocínio/
pensamento, ou seja, é o estudo de argumentos. Segundo Copi (1978), o estudo
da lógica é o entendimento dos métodos e princípios usados para distinguir o
raciocínio correto do incorreto. Se pararmos para pensar, a lógica faz parte
das nossas vidas muito mais do que nós imaginamos. Em casa, no trabalho, na
faculdade, na política, no lazer, enfim, sempre que nós precisamos apresentar
nosso ponto de vista, nós estamos usando argumentos.
De um modo geral, a lógica clássica pode ser estudada sob dois pontos de
vista: a lógica proposicional e a lógica de predicados. A lógica proposicional
trabalha com proposições, e será vista na aula próxima. A lógica de predicados,
por sua vez, é uma extensão da lógica proposicional que representa relações de
objetos num domínio de aplicação, a qual será estudada na sexta aula. Entretanto,

unitins • análise e desenvolvimento de sistemas • 1º PeRÍodo 387


aula 2 • matemática PaRa comPutação

para compreender o que vem a ser uma proposição, precisamos estudar como o
raciocínio lógico trabalha, identificando assim argumentos na nossa linguagem
do cotidiano por meio de palavras-chave, o qual será abordado nesta aula.
Será apresentado também uma forma de classificação do argumento tanto com
relação à forma de raciocínio (indutivo ou dedutivo) quanto à validade.

Saiba mais

2.1 Argumentos
Como dito anteriormente, a lógica trabalha com argumentos. Mas, então
o que vem a ser um argumento? Um argumento é uma seqüência de sentenças
ou enunciados (afirmações ou declarações) na qual um dos enunciados é a
conclusão e os demais são nomeados de premissas, as quais servem para provar
ou, pelo menos, fornecer alguma evidência para a conclusão. Segundo Copi
(1978), podemos definir um argumento como qualquer grupo de sentenças tal
que se afirme ser uma delas derivada das outras, as quais são consideradas
provas evidentes da verdade da primeira. Então, vamos a um exemplo bastante
clássico da lógica.
Todos os homens são mortais.
Sócrates é homem.
Portanto, Sócrates é mortal.
Neste exemplo, os dois primeiros enunciados (“Todos os homens são mortais”
e “Sócrates é homem”) chamaremos de premissas que servem para provar a
conclusão, que é “Sócrates é mortal”.
Tanto as premissas quanto a conclusão de um argumento são sempre enun-
ciados, isto é, significados ou idéias expressáveis por sentenças declarativas ao
invés de interrogações, comandos ou exclamações. Os enunciados são espécies
de idéias que são verdadeiras ou falsas. Os não-enunciados, tais como interro-
gações, comandos ou exclamações, não podem ser classificados como verda-
deiros ou falsos (CUNHA, 2008).
É importante frisar que os argumentos não seguem padrões de escrita da
forma em que as premissas são apresentadas primeiro e, depois, a apresen-
tação da conclusão. Sendo assim, alguém poderia apresentar quais são as suas

388 1º PeRÍodo • análise e desenvolvimento de sistemas • unitins


aula 2 • matemática PaRa comPutação

conclusões e, somente depois, justificá-las. Isso é também válido, porém um


pouco confuso com relação ao encadeamento de idéias. Então vamos analisar
mais três exemplos para verificar se são ou não argumentos.
a) O signo de João é aquário, pois o dia do seu aniversário é 26 de janeiro.
b) A minha blusa é verde, Pit é o nome do meu peixe e, logo, macarrão é
o meu prato favorito.
c) Matheus está respirando e, portanto, está vivo.
No primeiro exemplo, temos mais um caso de argumento. A premissa é “o
dia do seu aniversário é 26 de janeiro.” e a conclusão é “O signo de João é
aquário”. Este é um caso em que a conclusão é apresentada antes da premissa.
No segundo exemplo, não podemos classificar estes enunciados como argumento,
pois não existem premissas para embasar a conclusão apresentada “macarrão
é o meu prato favorito”. Ressaltamos ainda que não há um encadeamento de
idéias para se alcançar uma determinada conclusão, ou seja, a cor da blusa e o
nome do peixe não são razões ou motivos para compreender o prato favorito. No
terceiro e último exemplo, temos a premissa “Matheus está respirando” e como
conclusão, o enunciado “está vivo”. Normalmente, os argumentos são apresen-
tados desta forma, primeiro uma ou mais premissas e, por último, a conclusão.
A análise de argumentos pode ser dividida em diversas etapas, caso precise
verificar com mais detalhes os enunciados envolvidos. Como mencionamos ante-
riormente, uma conclusão é inferida a partir de um conjunto de premissas. Porém,
essa conclusão, em conjunto com outros enunciados, poderá ser usada como
uma premissa para inferir outra conclusão, a qual, por sua vez, pode funcionar
como premissa para uma outra conclusão, e assim sucessivamente. Quando
esta situação ocorrer, chamamos este argumento de argumento complexo. As
premissas que servem como conclusões de premissas anteriores chamam-se
premissas não-básicas ou conclusões intermediárias. A identificação de uma
conclusão intermediária pode ocorrer em qualquer parte do argumento. As
premissas que não são conclusões de premissas prévias chamam-se premissas
básicas ou suposições (CUNHA, 2008).

2.2 Identificação de argumentos


Um argumento ocorre somente quando, a partir de uma ou mais premissas,
se pretende sustentar ou provar uma conclusão (COPI, 1978). Esse propósito
é, freqüentemente, expresso pelo uso de indicadores de inferência. Inferência é
uma palavra do latim (inferre) que significa “conduzir para”. Os indicadores de
inferência são palavras ou frases que ressaltam a existência de um argumento.
Podemos classificar estes indicadores em dois grupos: os de premissa e os de
conclusão. Sendo assim, na tabela a seguir, estão apresentadas as principais
palavras de cada um desses grupos (CUNHA, 2008).

unitins • análise e desenvolvimento de sistemas • 1º PeRÍodo 389


aula 2 • matemática PaRa comPutação

Tabela 1 Indicadores de inferência.


INDICADORES DE PREMISSA INDICADORES DE CONCLUSÃO
pois portanto
desde que assim
como dessa maneira
porque neste caso
assumindo que daí
visto que logo
admitindo que de modo que
isto é verdade porque então
a razão é que conseqüentemente
em vista de assim sendo
como conseqüência de o(a) qual implica que
como mostrado pelo fato que o(a) qual acarreta que
dado que o(a) qual significa que
sabendo-se que do(da) qual inferimos que
supondo que podemos deduzir que
Fonte: Cunha (2008).

Os indicadores de premissa e de conclusão são os principais indícios para


a identificação de argumentos a partir dos enunciados e para a análise de sua
estrutura. Cabe observar que, quando um indicador de conclusão é colocado
entre duas sentenças, então a primeira sentença expressa uma premissa e a
segunda uma conclusão daquela premissa. Para compreender melhor esta situ-
ação, vamos analisar o seguinte exemplo:
João não está em casa; portanto, João foi passear.
Neste exemplo, temos o indicador de conclusão “portanto”. Dessa forma,
a premissa é “João não está em casa” e a conclusão é “João foi passear”. É
importante ressaltar ainda que as expressões que funcionam em alguns contextos
como indicadores de inferência têm, geralmente, outras funções em outros
contextos. Assim, nem toda ocorrência de uma das expressões apresentadas
é visto como um indicador de inferência. Observe o seguinte exemplo com a
expressão “desde que”.
Passaram-se três anos desde que fomos à Bélgica.
Neste exemplo, o “desde que” informa a duração do tempo e, assim, não é
considerado um indicador de premissas.
De forma similar, observe o seguinte exemplo com a expressão “assim” em:
Roger ficou rico e permaneceu assim por vários anos.
Neste exemplo, a palavra “assim” não é um indicador de conclusão. Neste
contexto, este indicador expressa o significado de “nessa condição” e não o
conceito de “portanto”.

390 1º PeRÍodo • análise e desenvolvimento de sistemas • unitins


aula 2 • matemática PaRa comPutação

Mas, e quando um argumento não apresentar indicadores de premissas


e/ou de conclusão? Nestes casos, precisamos observar os indícios contextuais
ou em nossa compreensão das intenções do autor para diferenciar as premissas
das conclusões. Para isso, observe o seguinte exemplo (CUNHA, 2008):
Os defensores do aborto são hipócritas. Eles, continuamente, contestam em
altos brados a execução de nossos inimigos. Mas eles nada vêem de errado
com o assassinato de crianças inocentes.
Após análise, podemos capturar que as premissas deste enunciado são:
“Eles, continuamente, contestam em altos brados a execução de nossos inimigos”
e “eles nada vêem de errado com o assassinato de crianças inocentes.” Como
conclusão, identificamos o enunciado “Os defensores do aborto são hipó-
critas”. Assim, ressaltamos mais uma vez que, embora, na maioria das vezes, as
premissas são apresentadas inicialmente, nada impede que a conclusão possa
estar escrita primeiro.
Vale a pena ressaltar que nem todo conjunto de sentenças constitui um argu-
mento. Os jornais, revistas e livros de estória, por exemplo, apresentam diversas
sentenças, mas contém relativamente poucos argumentos (COPI, 1978). Ou seja,
para se identificar um argumento, precisamos de várias sentenças (premissas e
conclusão), porém a existência de várias sentenças não é uma condição para
que obtenhamos um argumento.

2.3 Diagrama de argumentos


Os diagramas de argumentos são formas gráficas convenientes para repre-
sentar as estruturas inferenciais dos argumentos. Esses diagramas possibilitam
observar de maneira visual os relacionamentos entre os enunciados do argu-
mento analisado. Então, para representar ou diagramar um enunciado em modo
gráfico, é necessário seguir os seguintes passos (CUNHA, 2008):
a) colocar um círculo nos indicadores de inferência;
b) colocar colchetes para delimitar cada enunciado, bem como enumerá-lo;
c) reunir as premissas que fazem parte de uma etapa de raciocínio com
o sinal “+” e traçar uma linha horizontal embaixo da lista de números,
caso existam várias premissas;
d) se existir apenas uma premissa, então escrever simplesmente o seu
número na etapa do raciocínio;
e) desenhar uma seta para baixo a partir do(s) número(s) que representa(m)
uma premissa (ou premissas) para o número que representa a conclusão
da etapa, tanto para uma ou mais premissas;
f) repetir esse processo caso o argumento tiver mais de uma etapa para a
inferência.

unitins • análise e desenvolvimento de sistemas • 1º PeRÍodo 391


aula 2 • matemática PaRa comPutação

Para exemplificar a construção desses diagramas, vejamos o seguinte argu-


mento (Cunha, 2008):
Hoje é quinta-feira ou sexta-feira.
Mas não pode ser quinta-feira, pois o escritório de advocacia estava aberto
esta manhã, e aquele escritório está sempre fechado às quintas.
Portanto, hoje deve ser sexta-feira.
Seguindo os passos definidos anteriormente, obtemos:
1 – [Hoje é quinta-feira ou sexta-feira.]
Mas 2 – [não pode ser quinta-feira], pois 3 – [o escritório de advocacia
estava aberto esta manhã], e 4 – [aquele escritório está sempre fechado às
quintas.] Portanto , 5 – [hoje deve ser sexta-feira.]

3+4

2+1

5
É importante observar que a premissa 3, juntamente com a 4, é justificativa
para 2. Em seguida, a premissa 2 foi unida com a premissa 1 para alcançar a
conclusão 5.

Saiba mais

2.4 Validade e verdade


Os enunciados possuem valores verdadeiros ou falsos, dependendo se
exprimem realmente o fato ou não. Os argumentos, por sua vez, podem ser classifi-
cados como válidos ou inválidos. Segundo Aranha e Martins, um argumento é dito
válido quando sua conclusão é conseqüência lógica de suas premissas (ARANHA;
MARTINS, 2003). De acordo com Copi (1978), um argumento pode ser válido
quando suas premissas forem verdadeiras ou quando estas forem também falsas.
Vejamos então dois exemplos para compreender a questão da validade:

392 1º PeRÍodo • análise e desenvolvimento de sistemas • unitins


aula 2 • matemática PaRa comPutação

1) Todos os cachorros são mamíferos.


Todos os mamíferos têm coração.
Portanto, todos os cachorros têm coração.
2) Todos os cachorros têm oito patas.
Todos os seres de oito patas voam.
Logo, todos os cachorros voam.
No primeiro exemplo, as premissas e a conclusão são verdadeiras, e,
portanto, temos um argumento válido. Já no segundo exemplo, temos outro argu-
mento válido, visto que existem premissas e conclusão verdadeiras, embora que
na realidade sejam falsas.
Quando um argumento é considerado válido, podemos dizer que a conclusão
é uma conseqüência lógica das premissas apresentadas, que estudaremos na
quinta aula.

2.5 Classificação dos argumentos


Os argumentos podem ser classificados tradicionalmente em duas catego-
rias, que são: dedutivo ou indutivo. Então, agora vamos analisar mais detalha-
damente cada uma dessas categorias.
Um argumento dedutivo é um argumento cuja conclusão deve ser verdadeira
se suas premissas básicas forem também verdadeiras. Ou seja, o que está dito
na conclusão é extraído das premissas, pois na verdade já está implícito nelas
(Aranha e Martins, 2003). Copi traz uma outra definição de argumentos dedu-
tivos, conforme pode ser vista a seguir.
Argumentos dedutivos são aqueles cuja conclusão deriva dire-
tamente das premissas. Nos argumentos dedutivos a conclusão
não diz nada além do que foi dito nas premissas. O argumento
dedutivo destina-se a deixar explícito o conteúdo das premissas
(COPI, 1978, p. 35).

Neste tipo de argumento, podemos dizer que este é válido ou inválido. Um


argumento é dito válido quando suas premissas, se verdadeiras, fornecem meca-
nismos convincentes para a obtenção da sua conclusão. Jamais um argumento
será válido se as premissas forem verdadeiras e não obtermos a conclusão
como verdade.
Um argumento indutivo, por sua vez, é aquele cuja conclusão não é neces-
sária, dadas suas premissas básicas (NOLT; ROHATYN, 1991). As conclusões
de argumentos indutivos são mais ou menos prováveis em relação às suas
premissas. Uma outra definição de argumento indutivo pode ser encontrada em
Salmon, conforme pode ser vista a seguir:
Os argumentos indutivos, ao contrário do que sucede com os dedu-
tivos, levam a conclusões cujo conteúdo excede os das premissas.

unitins • análise e desenvolvimento de sistemas • 1º PeRÍodo 393


aula 2 • matemática PaRa comPutação

E esse traço característico da indução que torna os argumentos


indispensáveis para a fundamentação de uma significativa porção
dos nossos conhecimentos (SALMON, 1984, p. 76).

Os argumentos indutivos não são categorizados como válidos ou inválidos


como ocorre com os argumentos dedutivos. Estes podem ser categorizados como
“forte” ou “fraco”, dependendo se as premissas apresentadas fornecem um
motivo representativo ou não para as suas conclusões.
De um modo geral, o que diferenciará uma categoria da outra é a forma para a
obtenção da conclusão. Se obtivermos uma generalização a partir de dados espe-
cíficos, então teremos então uma indução. Caso contrário, teremos uma dedução.
Para entender melhor este pensamento ou raciocínio, observe a figura 1.

Figura 1 Indução versus Dedução.

Nesta figura, as setas direcionam o fluxo de inferência a ser capturado pela


seqüência de enunciados. Assim, vamos ver alguns exemplos de argumentos
indutivos e dedutivos. Primeiramente, considere:
A bola de basquete é marrom.
As bolas de futebol de campo, vôlei e futebol de salão também são marrons.
Logo, todas as bolas são marrons.
Neste caso, temos um exemplo de argumento indutivo, pois a partir de
algumas particularidades, conseguimos descobrir (ou inferir) uma generalização.
As particularidades são as bolas para determinadas atividades físicas e a gene-
ralização é a cor marrom, visto que todas as particularidades apresentadas
possuem a bola de cor marrom.
Outro exemplo de argumento indutivo, encontrado em (ARANHA; MARTINS,
2003), é:
A visão, o tato, a audição, o gosto, o olfato (que chamamos de sentidos) têm
um órgão corpóreo.
Portanto, todo sentido tem um órgão corpóreo.
Neste caso, como a visão, o tato, a audição, o gosto, o olfato foram espe-
cificados que possuem um órgão corpóreo, conseguimos abstrair que qualquer

394 1º PeRÍodo • análise e desenvolvimento de sistemas • unitins


aula 2 • matemática PaRa comPutação

sentido tem este órgão corpóreo. Podemos, inclusive, afirmar que este argumento
é do tipo indutivo forte, pois todos os tipos de sentidos foram apresentados e
especificados que possuem tal propriedade (órgão corpóreo). É importante frisar
que para abstrair um conceito geral precisamos possuir um número de casos
(exemplos ou particularidades) suficientes e que estes sejam significativos.
Agora com relação aos argumentos dedutivos, um possível exemplo, encon-
trado em (ARANHA; MARTINS, 2003), é:
Todo brasileiro é sul-americano.
Todo paulista é brasileiro.
Todo paulista é sul-americano.
Neste caso, embora tenha obtido uma conclusão ainda genérica, esta foi
adquirida a partir das informações fornecidas, mesmo que genérica. Vamos
ver agora outro exemplo de argumento dedutivo, sendo que com este iremos
adquirir uma informação mais particular do que o caso apresentado. Então
analise o argumento a seguir:
Todo aluno do curso de Análise e Desenvolvimento de Sistemas precisa
estudar Lógica.
José é aluno de Análise e Desenvolvimento de Sistemas.
Logo, José precisa estudar Lógica.
Neste exemplo, concluímos detalhadamente quem precisa estudar Lógica,
que é José. Esta conclusão foi obtida a partir de uma regra geral dos alunos do
curso de Análise e Desenvolvimento de Sistemas, bem como a especificação que
José é um aluno deste curso.
Observe ainda que os argumentos dedutivos não fornecem nenhum conhe-
cimento novo, apenas sistematiza o conhecimento já adquirido. Entretanto,
embora a dedução não acrescente muita informação, não significa que esta
não seja importante, até porque precisamos definir se esta dedução é válida ou
inválida como raciocínio lógico.

Nesta segunda aula, vimos que podemos analisar algumas sentenças


(premissas) do cotidiano, a fim de inferir um novo conhecimento (conclusão).
Vimos ainda que existem indicadores de premissas e de conclusão que auxiliam
na identificação dos mesmos num argumento. Quando não existem estas dicas,
precisamos ficar atentos para captar a idéia do autor. Uma forma para visua-
lizar o encadeamento de idéias num argumento é por meio do diagrama de
argumento, pois, com este, é possível verificar cada passo do processo de infe-
rência. Dentre os argumentos, podemos ainda classificá-los como indutivos (forte

unitins • análise e desenvolvimento de sistemas • 1º PeRÍodo 395


aula 2 • matemática PaRa comPutação

ou fraco) ou dedutivos de acordo com a forma de conclusão obtida. Os indutivos


são do geral para o específico e os dedutivos são do específico para o geral.

1. A união de enunciados pode ou não transformá-lo em argumento. Desta


maneira, analise os enunciados apresentados como afirmativas a seguir e
indique (V) verdadeiro se os mesmos formam um argumento. Caso contrário,
indique (F) falso. Depois, assinale a alternativa que contenha a seqüência
correta de Vs e Fs.
I. Eu lancho na cantina da escola todos os dias, mas o João não. Ana
gosta de sorvete. Maria foi ao cinema ontem.
II. Está chovendo. Vou dormir até mais tarde.
III. Se não chover, irei à praia. Não choveu. Logo, irei à praia.
IV. Vou ao shopping hoje. Cinema está fechado.

a) V, V, V, F c) V, F, F, V
b) F, F, V, F d) V, F, V, F

2. Na nossa língua portuguesa, existem palavras ou termos que auxiliam a


identificação de argumentos. Estas palavras são conhecidas como indica-
dores, podendo ser direcionados para as premissas ou para a conclusão.
Dessa maneira, escolha a alternativa que não é considerada um indicador
de conclusão.
a) portanto c) assumindo que
b) neste caso d) logo

3. Diagrama de argumentos é usado para ilustrar o envolvimento de premissas


para provar uma certa conclusão. Desta forma, analise cada parte do argu-
mento a seguir e represente-o com o diagrama de argumentos.

“João não precisa se preocupar com a baixa cotação do dólar no segundo


semestre do ano. A taxa do dólar nunca cai de agosto a dezembro e, portanto,
provavelmente não baixará”.

4. Conforme a forma de raciocínio utilizada, um argumento pode ser cate-


gorizado como indutivo ou dedutivo. Desta forma, analise e classifique os
seguintes argumentos como dedutivos ou indutivos:
a) O sol nasceu na segunda-feira.
O sol nasceu na terça-feira.

396 1º PeRÍodo • análise e desenvolvimento de sistemas • unitins


aula 2 • matemática PaRa comPutação

O sol nasceu na quarta-feira.


O sol nasceu na quinta-feira.
O sol nasceu na sexta-feira.
Logo, o sol nasce todos os dias.

b) Havia três pedaços de bolo de chocolate.


Agora existem apenas dois pedaços.
Portanto, alguém comeu um pedaço de bolo.

c) Só há aprovação na disciplina se possuir nota maior que 7,0.


A nota é 9,0.
Logo, há aprovação na disciplina.

Na atividade um, temos que diferenciar se os enunciados são ou não conside-


rados argumentos. A resposta correta é a alternativa (b) que representa a seqüência
F, F, V, F. Dentre os enunciados, apenas a afirmativa III (“Se não chover, irei à
praia. Não choveu. Logo, irei à praia.”) é considerada um argumento. Todas as
demais afirmativas, I (“Eu lancho na cantina da escola todos os dias, mas o João
não. Ana gosta de sorvete. Maria foi ao cinema ontem.”), II (“está chovendo. Vou
dormir até mais tarde.”) e IV (“Vou ao shopping hoje. O cinema está fechado.”)
não são argumentos. No caso da afirmativa I, em especial, embora tenham três
sentenças, estas não possuem em encadeamento lógico entre elas.
Na atividade dois, a resposta correta é a alternativa (c) que representa a
sentença “assumindo que”. Esta é um indicador de premissa e não de conclusão,
conforme pode ser observado na tabela apresentada na seção 2.2.
Na atividade três, inicialmente, precisamos identificar os indicadores de
inferência e enumerar as sentenças. Depois, de acordo com o raciocínio lógico,
representamos o argumento por meio dos diagramas. Assim, teremos:
1 - [João não precisa se preocupar com a baixa cotação do dólar no segundo
semestre do ano.]
2- [A taxa do dólar nunca diminui de agosto a dezembro], e, portanto , 3 -
[provavelmente não baixará.]
1+2

3
Na atividade quatro, na alternativa (a), temos um exemplo de argumento
indutivo, pois considerando que o sol nasceu de segunda-feira a sexta-feira,

unitins • análise e desenvolvimento de sistemas • 1º PeRÍodo 397


aula 2 • matemática PaRa comPutação

acredita-se que o sol nasça aos sábados e domingos também. Assim, conclui-se
que o nasça todos os dias. Na alternativa (b), tem-se um exemplo de argumento
dedutivo porque conseguimos especificar que um pedaço de bolo desapareceu,
logo, alguém o comeu. Na alternativa (c), temos mais um exemplo de argu-
mento dedutivo. Observe que a conclusão está embutida nas premissas que é a
condição para conseguir aprovação numa disciplina dado ao fato de se possuir
uma nota superior a 7,0.

ARANHA, Maria Lúcia de Arruda; MARTINS, Maria Helena Pires. Filosofando:


introdução à filosofia. 3. ed. São Paulo: Moderna, 2003.
CHAUI, Marilena. Convite à filosofia. São Paulo: Ática, 2003.
COPI, Irving M. Introdução à lógica. 2. ed. São Paulo: Mestre Jou, 1978.
CUNHA, J. F. Lógica informal: argumentos. Disponível em: <http:// www.dsc.
ufcg.edu.br/~logica/Apresentacoes/Log2_Argumentos.ppt>. Acesso em: 4 ago.
2008.
NOLT, John; ROHATYN, Dennis. Lógica. São Paulo: McGraw-Hill, 1991.
SALMON, W. Lógica. 6. ed. Rio de Janeiro: Zahar, 1984.

Na aula seguinte, iremos apresentar a primeira lógica que iremos estudar, que
é a lógica proposicional. Nessa lógica, estudaremos como representar, por meio
de símbolos, os enunciados categóricos encontrados no cotidiano, bem como reco-
nhecer seus valores lógicos. Além disso, iremos conhecer quais são os conectivos
lógicos existentes, sua forma de representação e o seu comportamento lógico.

Anotações

398 1º PeRÍodo • análise e desenvolvimento de sistemas • unitins


aula 3 • matemática PaRa comPutação

Aula 3
Lógica proposicional

Esperamos que, ao final desta aula, você seja capaz de:


• identificar e compreender o alfabeto da lógica proposicional;
• conhecer o comportamento dos conectivos lógicos em conjunto com as
fórmulas proposicionais.

Para esta aula, é importante que você tenha compreendido as operações


apresentadas na primeira aula no que diz respeito à Teoria dos Conjuntos, prin-
cipalmente, o conceito de pertinência. Consideramos ainda que é importante que
os conceitos que envolvem a formação de argumentos (premissas e conclusão), a
partir de enunciados, tenham sido compreendidos.

A lógica proposicional é também conhecida na literatura como lógica senten-


cial, cálculo sentencial ou cálculo proposicional. Visa a formalizar a estrutura
lógica mais elementar do discurso matemático, definindo precisamente o signifi-
cado dos conectivos lógicos não, e, ou, se...então e se somente se (CASANOVA
et al, 1987). Esse significado é obtido pela combinação de sentenças (proposi-
ções) simples e assim formando proposições mais complexas. Tanto para propo-
sições simples quanto compostas, essa lógica trabalha com valores de verdade
e de falsidade.
O estudo detalhado dessa lógica é importante porque ela contém quase
todos os conceitos importantes necessários para o estudo de lógicas mais
complexas, tal como a lógica de predicados (WIKIPÉDIA, 2008). Nesta aula,
abordaremos tanto a parte sintática por meio da apresentação do alfabeto e
das regras de formação de fórmulas bem formadas, quanto à parte semân-
tica da lógica proposicional, enfatizando os valores de verdade e de falsidade

unitins • análise e desenvolvimento de sistemas • 1º PeRÍodo 399


aula 3 • matemática PaRa comPutação

das fórmulas. Apresentaremos ainda como os conectivos lógicos são usados em


conjunto com as proposições, bem como o seu aspecto lógico.

Pensando sobre o assunto

3.1 Alfabeto
Assim como na língua portuguesa temos um alfabeto (a, b, c...., z, A, B,...Z)
e, a partir dele, conseguimos criar palavras reais, na lógica proposicional
também temos um alfabeto. De acordo com algumas regras de formação, conse-
guimos construir fórmulas válidas.
O alfabeto da lógica proposicional é constituído por símbolos lógicos e não-
lógicos. Os símbolos lógicos são caracterizados por:
• pontuação: (, );
• conectivos: ¬ (negação),∧ (conjunção), ∨ (disjunção), → (condicional ou
implicação), ↔ (bicondicional ou bi-implicação).
Os símbolos não-lógicos são definidos por:
• proposições: por convenção, letras do meio para o fim do alfabeto, tais
como: ... p, q, r, s,..., A, B, C...
Os símbolos de pontuação “(“ e “)” servem, assim como na matemática,
para delimitar o escopo de atuação da fórmula. Esses símbolos são usados,
normalmente, quando se deseja mudar a ordem de precedência de operações a
serem realizadas. Caso contrário, o uso dos parênteses torna-se opcional, pois
eles não mudam o sentido que se deseja expressar.
Os símbolos conectivos, por sua vez, são bastante conhecidos como conec-
tivos lógicos ou proposicionais. Esses símbolos são utilizados em conjunto com
proposições e representam operações lógicas. A seguir, veremos com maiores
detalhes o comportamento de cada um desses conectivos no que se diz respeito
ao seu valor lógico.
As proposições, basicamente, representam fatos, ou seja, pensamento de sentido
completo. Observe ainda que este conjunto de símbolos é infinito, permitindo que
sejam criadas diversas proposições simultaneamente. Assim, por exemplo, reescre-
vendo o exemplo clássico de lógica apresentado na aula anterior, teríamos:
p: Todos os homens são mortais.
q: Sócrates é homem.
r: Portanto, Sócrates é mortal.

400 1º PeRÍodo • análise e desenvolvimento de sistemas • unitins


aula 3 • matemática PaRa comPutação

Então, ao invés de escrever toda a sentença, poderemos utilizar somente as


proposições p, q, e r para expressar estes fatos. A partir do alfabeto da lógica
proposicional, podemos criar fórmulas que são uma seqüência dos símbolos. No
entanto, nem toda união dos símbolos do alfabeto é considerada uma fórmula válida
ou bem formada (well-formed formula - WFF). Uma fórmula bem formada da lógica
proposicional é formada pelas seguintes regras de formação (SOUZA, 2002):
• todo símbolo proposicional é uma fórmula;
• se P é uma fórmula então , a negação de P, é uma fórmula;
• se P e Q são fórmulas então , a disjunção das fórmulas P e Q, é
uma fórmula;
• se P e Q são fórmulas então , a conjunção das fórmulas P e Q,
é uma fórmula;
• se P e Q são fórmulas então , o condicional das fórmulas P e Q,
é uma fórmula;
• se P e Q são fórmulas então , o bicondicional das fórmulas P e
Q, é uma fórmula.
Considerando estas regras, concluímos que P, , e
são, por exemplo, fórmulas bem formadas da lógica proposicional.
Por outro lado, PQ, ↔, , por exemplo, não são consideradas fórmulas
válidas, ou seja, são fórmulas mal formadas.
Com relação à precedência dos conectivos lógicos, há uma convenção em
que o conectivo de negação tem a maior precedência dentre os demais. Em
seguida, estão os conectivos de conjunção, disjunção, condicional e bicondi-
cional. Portanto, podemos formalizar esta ordem de precedência de acordo com
o apresentado na figura 1.

Figura 1 Precedência dos conectivos lógicos.

Fonte: adaptado de Hubner (2008).

Com a definição da ordem de precedência dos conectivos lógicos, podemos


ainda simplificar algumas fórmulas com relação aos símbolos de pontuação.
Vejamos o seguinte exemplo:

Neste caso, podemos reescrever esta fórmula sem alterar o seu significado,
eliminando alguns símbolos de pontuação. Assim, esta fórmula simplificada

unitins • análise e desenvolvimento de sistemas • 1º PeRÍodo 401


aula 3 • matemática PaRa comPutação

seria: . Convencionalmente, assim como na matemática,


os parênteses mais externos podem ser omitidos.
As proposições podem ainda ser classificadas como simples e compostas de
acordo com a sua formação. Uma proposição é considerada simples quando
não possui nenhuma outra proposição como parte complementar de si mesma.
As proposições compostas, por sua vez, são aquelas em que existe uma combi-
nação de duas ou mais proposições simples por meio dos conectivos lógicos.
Convencionalmente, utilizam-se letras minúsculas (..., p, q, r, ...) para representar
proposições simples e letras maiúsculas (..., P, Q, R, ...) para expressar as proposi-
ções compostas. Vejamos alguns exemplos de proposições simples e compostas:
a) p: Palmas é a mais nova capital do Brasil
b) q: Cachorro é um mamífero
c) P: A temperatura está muito alta e a umidade bastante baixa
d) R: Se comprar queijo, então não comprar requeijão
Analisando esses exemplos, concluímos que as duas primeiras proposi-
ções são classificadas como simples (p e q); e as duas últimas são proposições
compostas (P e R), pois por intermédio de conectivos unem dois pensamentos.
Sendo que na proposição P foi usado o conectivo de conjunção, e na propo-
sição R foi apresentado o conectivo condicional.
Ainda com relação à sintaxe da lógica proposicional, definiremos a seguir
o comprimento de uma fórmula e subfórmulas. O comprimento de uma fórmula
P, denotado por comp[P], é definido como se segue (Souza, 2002):
• Se P é um símbolo proposicional então comp[P] = 1
• Se P e Q são fórmulas proposicionais, então:

Observe ainda que os símbolos de pontuação não são levados em conside-


ração na verificação do comprimento das fórmulas. Portanto, a contagem é reali-
zada somente com os conectivos lógicos, bem como os símbolos proposicionais
utilizados na fórmula.
Quando trabalhamos com fórmulas bem formadas, complexas, é bastante
usual separarmos em diversas subfórmulas para se obter uma melhor compre-
ensão. Sendo assim, dizemos que uma fórmula Q é subfórmula de uma fórmula
P se e somente se Q é uma subcadeia de P. Por exemplo:

402 1º PeRÍodo • análise e desenvolvimento de sistemas • unitins


aula 3 • matemática PaRa comPutação

Neste caso, podemos afirmar que Q é uma subfórmula de P.

3.2 Conectivos lógicos


As fórmulas da lógica proposicional, inclusive os símbolos proposicionais,
possuem como significado valores verdadeiro (V, true, T ou 1) ou falso (F, false,
F ou 0). Assim, o significado de uma fórmula não é conhecido antecipadamente,
mas a partir dos valores verdade das proposições constituintes desta fórmula é
possível encontrar seu valor lógico. Então vamos conhecer agora o comporta-
mento de cada um dos conectivos lógicos utilizando as proposições P e Q. Para
representar o valor lógico das proposições, iremos usar a função v, a qual possui
dois valores lógicos, que são V e F.

3.2.1 Negação
O conectivo ¬ representa a negação, isto é, o inverso do pensamento. Assim,
a negação do verdadeiro é falso, e a negação do falso é verdadeiro. Desta
forma, podemos estruturar o comportamento deste conectivo da seguinte forma:
v(¬P) = V, se v(P) = F
= F, se v(P) = V
A forma de leitura deste conectivo para esta proposição, por exemplo, é “não
P” ou “não é verdade P” , “é falso que P”, “não tem P” ou “não é fato que P”.
Considerando que a proposição P represente a sentença “O prefeito renun-
ciou”, temos, se P verdadeiro, “O prefeito renunciou” e temos “é falso que o
prefeito renunciou” e vice-versa.

3.2.2 Conjunção
O conectivo ∧ representa a conjunção, isto é, a combinação aditiva de
proposições. Neste caso, para que o valor lógico seja verdadeiro é necessário
que as duas proposições analisadas sejam verdadeiras simultaneamente. Caso
contrário, seu valor é falso. Desta forma, podemos estruturar o comportamento
deste conectivo da seguinte forma:
v(P ∧ Q) = V, se v(P) = v(Q) = V
= F, caso contrário
A forma de leitura deste conectivo usando estas proposições, por exemplo, é
“P e Q”, “P e também Q”, “não só P, mas, ainda, Q” ou “P assim como Q”.
Agora, considere P como “O aluno estudou” e Q como “O aluno obteve
uma excelente nota na prova”. Então a sentença “O aluno estudou e obteve uma
excelente nota na prova” será verdadeira somente se as duas sentenças isoladas

unitins • análise e desenvolvimento de sistemas • 1º PeRÍodo 403


aula 3 • matemática PaRa comPutação

forem verdadeiras. Ou seja, se por acaso o aluno estudou e não obteve uma
excelente nota, então a frase completa (“O aluno estudou e obteve uma exce-
lente nota na prova”) será falsa.

3.2.3 Disjunção
O conectivo ∨ representa a disjunção, ou seja, a escolha de forma não
exclusiva. Deste modo, o valor lógico é verdadeiro se pelo menos um dos valores
das proposições forem verdadeiros. Caso contrário, será falso. Assim, podemos
expressar este comportamento da seguinte maneira:
v(P ∨ Q) = F, se v(P) = v(Q) = F
= V, caso contrário
A forma de leitura deste conectivo, usando estas proposições, por exemplo,
é “P ou Q”.
Para este conectivo, considere P como “O aluno estuda para a prova” e Q
“O aluno faz uma redação”. Assim a sentença “O aluno estuda para a prova
ou faz uma redação” é verdadeira se pelo menos uma das sentenças isoladas
for verdadeira.

3.2.4 Condicional
O conectivo → representa a implicação ou o condicional entre duas propo-
sições, sendo a proposição do lado esquerdo chamada de antecedente e a do
lado direito chamada de conseqüente. Deste modo, o valor lógico é falso se o
antecedente tiver valor verdadeiro e, simultaneamente, o conseqüente tiver o
valor igual a falso. Nos demais casos, será o valor verdadeiro. Assim, podemos
expressar este comportamento da seguinte maneira:
v(P → Q) = F, se v(P) = V e v(Q) = F
= V, caso contrário
A forma de leitura deste conectivo, usando estas proposições, por exemplo,
é “se P então Q”, “P logo Q” ou “P implica Q”. Podemos inferir ainda que P é
parte da causa de Q.
Por exemplo, considere P como “O planeta Terra gira” e Q “O planeta Terra
se move”. Assim, temos “Se o planeta Terra gira, então o planeta Terra se move”.
Neste caso, observe que “o planeta Terra se move” está condicionado ao fato de
“o planeta Terra girar” e será falso apenas quando o antecedente for verdadeiro
e o conseqüente for falso.

3.2.5 Bicondicional
O conectivo ↔ representa a bi-implicação ou bicondicional entre duas
proposições. Deste modo, o valor lógico é verdadeiro se ambas proposições

404 1º PeRÍodo • análise e desenvolvimento de sistemas • unitins


aula 3 • matemática PaRa comPutação

possuírem valores lógicos iguais ao mesmo tempo, podendo ser tanto verdadeiro
quanto falso. Nos demais casos, é o valor falso. Assim, podemos expressar o
comportamento deste conectivo da seguinte maneira:
v(P ↔ Q) = V, se v(P) = v(Q)
= F, caso contrário
A forma de leitura deste conectivo, usando estas proposições, por exemplo,
é “P se e somente se Q” ou “P é condição necessária que Q”.
Por exemplo: considere P como “O prefeito será cassado” e Q “O prefeito
permanece no cargo”. Assim, temos “O prefeito será cassado se e somente se
ele permanecer no cargo”. Dessa forma, esta frase será verdadeira somente se
os valores das sentenças isoladas obtiverem o mesmo valor lógico, podendo ser
verdadeiro ou falso.
Além destes conectivos lógicos clássicos, tem-se ainda a disjunção exclusiva
que é representada por ∨. Este conectivo é uma variação da disjunção apresen-
tada anteriormente, sendo que para o valor lógico ser verdadeiro somente uma
das proposições envolvidas pode ter seu valor lógico como verdadeiro. Assim,
a outra proposição precisa, obrigatoriamente, possuir o valor lógico como falso.
Desta maneira, podemos expressar este comportamento da seguinte maneira:
v(P ∨ Q) = V, se v(P) = V e v(Q) = F
= V, se v(P) = F e v(Q) = V
= F, caso contrário
A forma de leitura deste conectivo, usando estas proposições, por exemplo,
é “ou P ou Q”.
Para este conectivo, considere P como “O prefeito renuncia” e Q “O prefeito
será cassado”. Assim, teríamos a sentença “Ou o prefeito renuncia ou ele será
cassado”. Neste caso, a frase será verdadeira somente se uma das opções for
verdadeira. Caso contrário, será falsa.
Antes de conhecer algumas leis importantes da lógica envolvendo estes
conectivos lógicos, vamos fazer uma analogia entre a teoria dos conjuntos,
mostrada na primeira aula, e a lógica proposicional que está sendo vista nesta
aula para a apresentação de um valor lógico. Assim, considere A = {1,2,3,4,5},
p= “5 pertence ao conjunto A” e q = “1 não pertence ao conjunto A”. Desta
forma, de forma notacional, teremos:
• :V
• v (P): V
• :F
• v (q): F

unitins • análise e desenvolvimento de sistemas • 1º PeRÍodo 405


aula 3 • matemática PaRa comPutação

Com isso, finalizamos a apresentação do comportamento dos conectivos


lógicos da lógica proposicional.

3.3 Leis fundamentais da lógica


A lógica proposicional possui três leis fundamentais, que são a do terceiro
excluído, a da não-contradição e a da identidade, que servem para guiar o nosso
raciocínio lógico (ARANHA; MARTINS, 2003). Vejamos a seguir cada uma delas.

3.3.1 Lei do terceiro excluído


Esta lei afirma que uma fórmula proposicional só pode ser verdadeira ou
falsa. Assim, descarta-se uma terceira opção de valor lógico que não seja verda-
deiro ou falso. Por exemplo: “esta criança tem ou não tem 10 anos”. Podemos
então representar esta lei com a seguinte fórmula proposicional:

Pensando sobre o assunto

3.3.2 Lei da não-contradição


Esta lei diz que uma fórmula proposicional não pode ser, simultaneamente,
verdadeira e falsa. Ou seja: não posso afirmar que “esta criança tem e não tem
10 anos” ao mesmo tempo. Podemos representar esta lei do seguinte modo:

3.3.3 Lei da identidade


Esta lei refere-se que “o que é, é e o que não é, não é”. Uma vez definido
se é ou não, este conceito deve permanecer ao longo do raciocínio. Podemos
então representar esta lei da seguinte maneira:
p=p

3.4 Diferentes notações


Além desta notação usada para representar os conectivos lógicos, é possível
também encontrar na literatura uma variedade de outros símbolos. Dentre eles,
podemos destacar: negação (~, ‘, !, not), conjunção (., and), disjunção (+, or) e
disjunção exclusiva (⊕).

406 1º PeRÍodo • análise e desenvolvimento de sistemas • unitins


aula 3 • matemática PaRa comPutação

Outro aspecto que pode ser analisado com relação aos conectivos lógicos
é a quantidade de proposições necessárias para a obtenção de um novo valor
lógico. O conectivo de negação, por exemplo, é considerado unário, visto que
necessita de somente uma proposição para obter o novo valor lógico. Por outro
lado, os demais conectivos lógicos são binários, pois precisam analisar os valores
de duas proposições para se encontrar o novo valor lógico.

Vimos o alfabeto em que a lógica proposicional atua, sendo composto por


símbolos de pontuação, conectivos e proposições. Apresentamos também que
nem toda união de símbolos deste alfabeto gera uma fórmula proposicional bem
formada. Para isso, precisamos seguir algumas de regras de formação.
Vimos, ainda, o comportamento dos conectivos lógicos (negação, conjunção,
disjunção, disjunção exclusiva, condicional e bi-condicional) com relação ao
valor da proposição ou fórmula analisada. Além disso, vimos outras notações
dos conectivos lógicos usadas na literatura.

1. Considerando as regras de formação de fórmulas bem formadas, identi-


fique, dentre as fórmulas apresentadas a seguir, quais são fórmulas da lógica
proposicional. Considere ainda a forma simplificada de representação de
fórmulas em que os símbolos de pontuação podem ser eliminados.
a)
b)
c)
d)

2. Simplifique ao máximo, se possível, o número de símbolos de pontuação das


fórmulas a seguir.
a)
b)
c)

3. Analise as afirmativas apresentadas a seguir e, em seguida, escolha a alter-


nativa correta.
I. O conectivo de negação possui a maior precedência entre os conec-
tivos, assim é o primeiro a ser realizado numa fórmula.

unitins • análise e desenvolvimento de sistemas • 1º PeRÍodo 407


aula 3 • matemática PaRa comPutação

II. O comprimento de uma fórmula é obtido pela soma dos conectivos,


proposições e símbolos de pontuação envolvidos.
III. é uma subfórmula de .
IV. A lei do terceiro excluído diz que uma proposição pode ter somente
valor verdadeiro ou falso, podendo nunca possuir outro valor exceto
esses dois.

a) somente I e III estão corretas;

b) somente II e IV estão corretas;

c) somente I, III e IV estão corretas;

d) I, II, III e IV estão corretas.

4. Considerando os valores lógicos das proposições (F e V) e os conectivos a


seguir, identifique o seu valor lógico de P, ou seja, v(P).
a) v(Q) = V e v( )=F
b) v(Q) = F e v( )=F
c) v(Q) = V e v( )=F
d) v(Q) = F e v( )=F

5. Considerando que a proposição p significa “João é bonito” e a q significa


“João é inteligente”, represente as frases a seguir usando o alfabeto da
lógica proposicional.

a) João é bonito e inteligente

b) João é inteligente mas não bonito

c) Não é verdade que João é bonito e inteligente

d) Se João é bonito, então ele não é inteligente

Na atividade um, a alternativa (a) é considerada uma fórmula bem formada.


A alternativa (b), por sua vez, não é considerada uma fórmula proposicional
bem formada, pois não existe um relacionamento entre as subfórmulas
e . A alternativa (c) também não é uma fórmula proposicional
porque o conectivo lógico ∧ necessita de duas proposições para se obter um
outro valor lógico. A alternativa (d) é considerada uma fórmula bem formada
ainda que utilize símbolos de pontuação desnecessários. Neste caso, esta
fórmula de modo simplificado ficaria semelhante à fórmula apresentada na
alternativa (a) .

408 1º PeRÍodo • análise e desenvolvimento de sistemas • unitins


aula 3 • matemática PaRa comPutação

Na atividade dois, a alternativa (a) que apresenta a fórmula , os


parênteses não podem ser eliminados, pois caso isso ocorra, inicialmente, será
efetuada a operação e somente depois a operação com o condicional P
será efetuada, visto que o operador de conjunção tem maior precedência. Na alter-
nativa (b), a fórmula pode ser simplificada para
. Na alternativa (c), a fórmula
pode ser reescrita da seguinte forma: .
Na atividade três, a resposta correta é a alternativa (c) que apresenta as afir-
mativas I, III e IV como corretas. A afirmativa II está incorreta porque os símbolos
de pontuação não são levados em consideração para se obter o comprimento da
fórmula. A afirmativa I está correta porque, conforme apresentado na Figura 1, o
conectivo de negação possui a maior prioridade, sendo assim o primeiro conec-
tivo a ser observado numa fórmula. A afirmativa III está correta porque é
uma cadeia da fórmula , assim como e
. A afirmativa IV está também correta porque, conforme apresentado
na seção 3.3, a lei do terceiro excluído descarta qualquer outro valor para uma
proposição que não seja igual a verdadeiro ou falso.
Na atividade quatro, o valor lógico da proposição P na alternativa (a) é
F, pois considerando que o valor lógico de Q é V e a conjunção de P e Q é F,
então para que a conjunção seja falsa é porque pelo menos um valor lógico das
proposições analisadas é F. Na alternativa (b), o valor de P é falso, visto que
para ser falso, obrigatoriamente as proposições P e Q são falsas. Na
alternativa (c), o valor de P é também falso, pois para v(P ↔ Q) ser falso, o valor
de P precisa ser diferente de Q, que é verdadeiro. Na alternativa (d), o valor
de P é verdadeiro porque para ser falso as proposições envolvidas
precisam ter valores distintos e Q já tem seu valor igual a falso.
Na atividade cinco, usando o alfabeto da lógica proposicional, podemos
expressar estas frases com para a alternativa (a), para a alterna-
tiva (b), para a alternativa (c) e para a alternativa (d).

ARANHA, Maria Lúcia de Arruda; MARTINS, Maria Helena Pires. Filosofando:


introdução à filosofia. 3. ed. São Paulo: Moderna, 2003.
CASANOVA, Marco A.; GIORNO, Fernando; FURTADO, Antônio L. Programação
em lógica e a linguagem Prolog. São Paulo: Edgard Blucher, 1987.
HUBNER, Jomi Fred. Lógica proposicional. Disponível em: <http://www.inf.furb.
br/~jomi/logica/slides/logProp-4x1.pdf>. Acesso em: 16 ago. 2008.
SOUZA, João Nunes de. Lógica para ciência da computação. Rio de Janeiro:
Campus, 2002.

unitins • análise e desenvolvimento de sistemas • 1º PeRÍodo 409


aula 3 • matemática PaRa comPutação

TELES, Antônio Xavier. Introdução ao estudo de filosofia. São Paulo: Ática, 2000.
WIKIPÉDIA. Enciclopédia Livre. Lógica proposicional. Disponível em: <http://
pt.wikipedia.org/wiki/L%C3%B3gica_proposicional>. Acesso em: 3 ago. 2008.

Agora que você já obteve conhecimento sobre proposições e conectivos


lógicos, na próxima aula veremos a construção de tabelas-verdade para inter-
pretação dos valores lógicos, analisando cada situação possível, bem como a
classificação dessas tabelas de acordo com os valores lógicos encontrados.

Anotações

410 1º PeRÍodo • análise e desenvolvimento de sistemas • unitins


aula 4 • matemática PaRa comPutação

Aula 4
Tabela – verdade

Esperamos que, ao final desta aula, você seja capaz de:


• construir tabelas-verdade de proposições simples e compostas;
• classificar as tabelas-verdade como tautologias, contradições ou
contingências.

Para a compreensão desta aula, é importante que você tenha entendido


como representar as proposições simples e compostas, bem como os conectivos
lógicos. É relevante também que o entendimento do comportamento dos conec-
tivos lógicos em conjunto com as fórmulas proposicionais tenha sido abstraído.
Conseqüentemente, saber trabalhar com fórmulas proposicionais bem formadas
também é outro aspecto relevante para compreender esta aula. Caso tenha dúvidas
com relação a estes assuntos, revise a aula anterior e faça os exercícios.

Até a aula passada, você aprendeu a identificar o valor lógico de uma


proposição e, a partir deste valor, saber qual seria outro valor lógico, caso
combinasse com um certo conectivo (¬, ∧, ∨, → ou ↔) e/ou com uma segunda
proposição. Assim, no máximo, analisamos duas proposições com um conectivo.
Porém, quando se tem um número maior de proposições ou até mesmo quando
a fórmula se torna complexa devido aos símbolos de pontuação, a maneira
utilizada até o presente momento não traz muitos recursos. Devido a este tipo de
necessidade, foram criadas as tabelas-verdade para sistematizar o processo de
obtenção de valores lógicos.
Logo, nesta aula, aprenderemos como criar tabelas-verdade para fórmulas
proposicionais (simples e compostas), bem como classificá-las de acordo com
os valores lógicos obtidos como resultado. Assim, classificaremos uma tabela-

unitins • análise e desenvolvimento de sistemas • 1º PeRÍodo 411


aula 4 • matemática PaRa comPutação

verdade como tautologia, contradição ou contingência (ou indeterminação). Por


fim, analisaremos uma fórmula com relação à sua satisfabilidade.

4.1 Tabela – verdade


As tabelas-verdade (ou tabelas de verdade) são tabelas que são associadas
aos conectivos proposicionais e às fórmulas da lógica proposicional. No último
caso, as tabelas são construídas a partir das tabelas associadas aos conectivos
proposicionais (SOUZA, 2002). Essas tabelas são usadas para verificar se uma
fórmula é verdadeira e válida.
O número de colunas numa tabela-verdade varia de acordo com a fórmula
que está sendo analisada. Além disso, podemos ter ainda para uma mesma
fórmula proposicional diversas tabelas-verdade condizentes no que se diz
respeito ao número de colunas. Normalmente, para cada fórmula analisada,
várias decomposições são realizadas, ou seja, são escritas as suas subfór-
mulas. Basicamente, o que diferenciará uma tabela da outra é a capacidade de
encontrar valores lógicos analisando um ou mais conectivos ao mesmo tempo.
Inicialmente, recomendamos que escreva todas as subfórmulas da fórmula
analisada e, com o passar do tempo, você será capaz de agilizar o processo
do entendimento dos conectivos e, conseqüentemente, reduzir o número de
colunas, caso deseje.
Por exemplo: se fôssemos analisar a fórmula para cons-
truir a tabela-verdade, poderíamos criar sete colunas, sendo uma para cada uma
das subfórmulas, que são: p, q, , , , e .
Observe que a fórmula analisada também faz parte de uma das colunas da
tabela-verdade.
Com relação à quantidade de linhas numa tabela-verdade, esta dependerá
da quantidade de proposições existentes na fórmula a ser analisada. Quando
existir apenas uma única proposição, por exemplo, teremos duas linhas, sendo
preenchidas com os valores V (ou 1) e F (ou 0) em uma única coluna. Considerando
agora duas proposições, por exemplo, teremos os seguintes valores lógicos:
VV, VF, FV e FF, sendo estes apresentadas em cada linha, que perfaz um total
de quatro linhas. A ordem da apresentação desses valores pode ser alterada.
Entretanto não pode ocorrer repetição desses valores, ou seja, ter duas linhas FV
ou VF, por exemplo.
Portanto, a quantidade de linhas numa tabela-verdade dar-se-á pela
fórmula 2n, em que n representa o número de proposições existentes (Casanova
et al, 1978). Desta maneira, se tivermos, por exemplo, quatro proposições
numa fórmula, então teremos 16 linhas na tabela-verdade. Assim, esta é uma
boa dica para certificar-se que a quantidade de linhas da tabela-verdade
esteja correta.

412 1º PeRÍodo • análise e desenvolvimento de sistemas • unitins


aula 4 • matemática PaRa comPutação

Saiba mais

Portanto, de um modo geral, podemos estruturar a construção da tabela-


verdade em três etapas:
1. definição da quantidade de linhas, observando o número de proposi-
ções simples distintas na fórmula proposicional;
2. identificação da ordem de precedência dos conectivos lógicos, subdivi-
dindo assim a fórmula proposicional em subfórmulas. Cabe ressaltar que,
assim como na matemática, quando existir parênteses nas fórmulas, as
operações dentro dos parênteses deverão ser efetuadas primeiramente;
3. preenchimento dos valores lógicos (V ou F) das subfórmulas de acordo
com o comportamento dos conectivos envolvidos.
Então observe agora como seria a tabela-verdade para representar o
comportamento dos conectivos lógicos ¬, ∧, ∨, ∨, → e ↔, apresentados na aula
passada, usando as proposições p e q.
p↔q
¬p p∧q p∨p p∨q p→q
p q (p se e
(não p) (p e q) (p ou q) (ou p ou q) (se p então q)
somente se q)
V V F V V F V V
V F F F V V F F
F V V F V V V F
F F V F F F V V
Vamos então
agora construir a tabela-verdade para a fórmula
. Como esta fórmula possui somente duas proposições (p e
q), então já sabemos de antemão que esta tabela-verdade terá quatro linhas
(exceto o cabeçalho da tabela-verdade) para apresentar todas as interpreta-
ções dos valores lógicos. Com relação à quantidade de colunas, vamos destinar
uma coluna para cada subfórmula existente. Assim, a tabela-verdade para esta
fórmula pode ser vista a seguir:
p q ¬p ¬q p∨q ¬p ∨ ¬q (p ∧ q)→(¬p ∨ ¬q)
V V F F V F F
V F F V F V V
F V V F F V V
F F V V F V V

unitins • análise e desenvolvimento de sistemas • 1º PeRÍodo 413


aula 4 • matemática PaRa comPutação

Observe que, inicialmente, esta tabela apresenta os valores lógicos das


proposições p e q. Na seqüência, são obtidos os valores de e em
função de p e q, respectivamente. De forma similar, foram obtidos os valores
lógicos das subfórmulas até alcançar a fórmula completa .
Analisando os valores finais obtidos em cada uma das linhas da propo-
sição ou fórmula analisada, podemos classificar a tabela em tautologia,
contradição ou contingência. Então, vamos entender agora estas três formas
de classificação.

4.2 Tautologia
Uma fórmula α é uma tautologia ou válida quando para qualquer interpre-
tação, ou seja, linha da tabela-verdade possui o valor lógico igual a verdadeiro.
Um exemplo clássico de tautologia é a fórmula . Construindo sua tabela-
verdade, teremos:
p ¬P P∨ ¬P
V F V
F V V
Outro possível exemplo de tautologia pode ser observado na fórmula
. Então vamos conferir a sua tabela-verdade.
p q ¬p ¬q p→q ¬q→¬p (p→q)↔(¬q→¬p)
V V F F V V V
V F F V F F V
F V V F V V V
F F V V V V V

Pensando sobre o assunto

4.3 Contradição
Uma fórmula α é uma contradição quando todas as interpretações da tabela-
verdade possuem o valor lógico igual a falso. A fórmula é um exemplo
clássico de contradição, conforme pode ser vista pela tabela a seguir.
p ¬p p∧¬p
V F F
F V F

414 1º PeRÍodo • análise e desenvolvimento de sistemas • unitins


aula 4 • matemática PaRa comPutação

A fórmula é também considerada um exemplo de


contradição, a qual pode ser comprovada pela tabela-verdade apresentada
a seguir.
p q ¬p ¬q p∨¬p q∧¬q (p∨¬p)→(q∧¬q)
V V F F V F F
V F F V V F F
F V V F V F F
F F V V V F F

Podemos afirmar ainda que a negação de uma tautologia é uma contra-


dição, e a negação de uma contradição é uma tautologia.

4.4 Contingência ou indeterminação


Uma fórmula α é uma contingência ou uma indeterminação quando as inter-
pretações possuem valores lógicos iguais a verdadeiro e falso, simultaneamente.
Assim, um exemplo bastante simples é a fórmula , conforme pode ser
vista na tabela a seguir.
p ¬p p→¬p
V F F
F V V

Outro exemplo de fórmula indeterminada pode ser visualizada a seguir.


p q ¬q p∨¬q ¬(p∨¬q) p↔q (p↔q)→¬(p∨¬q)
V V F V F V F
V F V V F F V
F V F F V F V
F F V V F V F

Nesta tabela, a fórmula obteve dois valores verdadeiros


e dois falsos. Enfim, para se obter uma indeterminação na tabela-verdade, basta
encontrar pelo menos um verdadeiro e outro falso.
Assim, finalizamos as três formas de classificação das tabelas-verdade no
que diz respeito à obtenção dos valores lógicos das fórmulas resultantes.

4.5 Satisfatibilidade
Podemos ainda classificar as fórmulas com relação à sua satisfatibili-
dade. Uma fórmula α é dita satisfatível (ou factível) quando existe pelo menos
uma interpretação, ou seja, uma linha da tabela-verdade com o valor verda-
deiro (SOUZA, 2002). Por conseguinte, toda fórmula tautológica é auto-
maticamente uma fórmula satisfatível. Por outro lado, uma fórmula é conside-
rada insatisfatível quando esta não é satisfatível, ou seja, quando se obtém
uma contradição.

unitins • análise e desenvolvimento de sistemas • 1º PeRÍodo 415


aula 4 • matemática PaRa comPutação

Deste modo, podemos concluir ainda que:


• se uma fórmula não for tautológica, então esta pode ser satisfatível ou
contraditória;
• se uma fórmula for satisfatível, então esta não é uma contradição e pode
ser tautológica;
• se uma fórmula não for satisfatível, então esta é uma contradição e não
pode ser tautológica.
Com isso, finalizamos a nossa quarta aula.

Nesta aula, vimos como construir tabelas-verdade para sistematizar o processo


de obtenção de valor lógico das fórmulas proposicionais. Assim, precisamos
verificar a quantidade de proposições existentes na fórmula para determinar o
número de linhas da tabela-verdade. Foi apresentada ainda uma classificação
das tabelas-verdade com relação aos valores lógicos obtidos como resultado.
Chamamos de tautologia quando todas as interpretações da fórmula possuem
V; contradição quando se encontra apenas valores F e contingência quando
existem ambos valores . Ainda com relação aos valores obtidos, podemos espe-
cificar se uma fórmula é satisfatível ou não.

1. Considerando as etapas para a construção de tabelas-verdade apresen-


tadas anteriormente, crie uma tabela-verdade para as proposições descritas
a seguir.
a)
b)
c)

2. Analise as afirmativas apresentadas a seguir e, em seguida, escolha a alter-


nativa correta.
I. Uma fórmula é considerada indeterminada ou contingente quando são
encontrados valores verdadeiros e falsos simultaneamente na última
coluna da tabela-verdade.
II. A quantidade de linhas de uma tabela-verdade está relacionada com a
quantidade de proposições existentes, bem como o número de conec-
tivos lógicos envolvidos.
III. A fórmula é um exemplo de contradição.

416 1º PeRÍodo • análise e desenvolvimento de sistemas • unitins


aula 4 • matemática PaRa comPutação

a) As afirmativas I e II estão corretas;


b) As afirmativas II e III estão corretas;
c) As afirmativas I e III estão corretas;
d) Todas as afirmativas estão corretas.

3. Considerando a tabela-verdade apresentada a seguir, classifique se esta é um


exemplo de tautologia, contradição, contingência, satisfatível ou insatisfatível.
P ¬p p→¬p
V F F
F V V

4. Construa uma tabela-verdade que apresente um exemplo de fórmula tautoló-


gica e outra de contraditória.

A atividade um visa a verificar a habilidade de construção de tabelas-


verdade. As tabelas-verdade para as fórmulas sugeridas são apresentadas a
seguir: Para a alternativa (a), temos:
a b ¬a ¬b a∨b ¬b∧¬a (a∨b)∧(¬b∧¬a)
V V F F V F F
V F F V V F F
F V V F V F F
F F V V F V F

Para a alternativa (b), temos:


a b c ¬a ¬b a∧b∧c ¬a¬b a∧b∧c↔¬a∨¬b
V V V F F V F F
V V F F F F F V
V F V F V F V F
V F F F V F V F
F V V V F F V F
F V F V F F V F
F F V V V F V F
F F F V V F V F

Para a alternativa (c), temos:


a b c ¬b ¬c ¬b∨¬c ¬b∨a (¬b∨¬c)∧(¬b∨a) a∨((¬b∨¬c)∧(¬b∨a))
V V V F F F V F F
V V F F V V V V V
V F V V F V V V V

unitins • análise e desenvolvimento de sistemas • 1º PeRÍodo 417


aula 4 • matemática PaRa comPutação

a b c ¬b ¬c ¬b∨¬c ¬b∨a (¬b∨¬c)∧(¬b∨a) a∧((¬b∨¬c)∧(¬b∨a))


V F F V V V V V V
F V V F F F F F F
F V F F F F F F F
F F V V F V V V F
F F F V V V V V F

Na atividade dois, a resposta correta é a alternativa (c). A afirmativa I


está correta porque, quando se obtém valores verdadeiros e falsos na última
coluna da tabela-verdade, isto é, a coluna da fórmula que está sendo analisada,
denominamos de contingência ou indeterminação. A afirmativa II está incorreta
porque a quantidade de linhas está relacionada somente com a quantidade de
proposições existentes na fórmula. E a afirmativa III está também correta, pois
se fôssemos construir uma tabela-verdade para a fórmula , verificaríamos
que a sua última coluna apresentará somente valores falsos.
Para responder a atividade três, devemos relembrar os conceitos apresen-
tados entre as seções 4.2 a 4.5. Como os valores da última coluna da tabela-
verdade são V e F, então classificamos a tabela como contingência. Como existe
pelo menos um valor verdadeiro, então esta tabela-verdade é classificada como
satisfatível também.
Na atividade quatro, uma tabela-verdade para uma fórmula tautológica
poderia ser:
p q p↔q (p↔q)∧p ((p↔q)∧p)→q
V V V V V
V F F F V
F V F F V
F F V F V

E para uma fórmula contraditória poderia ser:


p q ¬p ¬q p∧¬q (p∧¬q)∧¬p
V V F F F F
V F F V V F
F V V F F F
F F V V F F

Além desses exemplos, temos também a fórmula que é um


exemplo de tautologia e um exemplo de contradição.

ARANHA, Maria Lúcia de Arruda; MARTINS, Maria Helena Pires. Filosofando:


introdução à filosofia. 3. ed. São Paulo: Moderna, 2003.

418 1º PeRÍodo • análise e desenvolvimento de sistemas • unitins


aula 4 • matemática PaRa comPutação

CASANOVA, Marco A.; GIORNO, Fernando; FURTADO, Antônio L. Programação


em lógica e a Linguagem Prolog. São Paulo: Edgard Blucher, 1987.
SOUZA, João Nunes de. Lógica para ciência da computação. Rio de Janeiro:
Campus, 2002.

Veremos as relações de implicação e de equivalência lógica entre duas


fórmulas proposicionais quaisquer. Para comprovar a existência de uma impli-
cação ou equivalência, utilizaremos as tabelas-verdade que acabamos de
aprender. Analisaremos, também, um conjunto de implicações e equivalências já
definidas pelos pesquisadores da área da Lógica, a fim de sistematizar o nosso
raciocínio lógico para a prova de argumentos válidos.

Anotações

unitins • análise e desenvolvimento de sistemas • 1º PeRÍodo 419


aula 4 • matemática PaRa comPutação

420 1º PeRÍodo • análise e desenvolvimento de sistemas • unitins


aula 5 • matemática PaRa comPutação

Aula 5
Implicação e equivalência lógica

Esperamos que, ao final desta aula, você seja capaz de:


• verificar a ocorrência de uma implicação ou equivalência lógica entre
duas fórmulas proposicionais;
• provar a validade de argumentos por meio de conceitos de implicações
e equivalências lógicas previamente definidas na área da Lógica.

O entendimento sobre proposições (simples e compostas) e conectivos lógicos


é importante para a compreensão desta aula. Além disso, o processo de cons-
trução de tabelas-verdade é essencial, visto que serão utilizadas como mecanismos
para provar os conceitos de implicação e equivalência lógica. Assim, caso tenha
dúvidas desse processo, releia as aulas anteriores e refaça os exercícios.

Continuando ainda com os estudos da lógica proposicional, nesta aula


veremos os conceitos de implicação e equivalência lógica aplicados em suas
fórmulas. Esses conceitos podem ser facilmente comprovados por meio das
tabelas-verdade sob determinadas condições. Para isso, apresentaremos alguns
exemplos comprovando a existência de uma implicação ou equivalência lógica
tanto com a notação de fórmulas proposicionais quanto com o uso de sentenças
usadas no cotidiano, relembrando o estudo da aula dois. Veremos ainda como
provar a validade de um argumento por meio dos conceitos de implicação e
equivalência lógica.
Na Lógica Matemática, existem diversas leis de implicação e equivalência,
previamente definidas pelos pesquisadores, as quais são usadas para nortear
o nosso pensamento ou raciocínio. As implicações direcionam a obtenção de
uma conclusão, caso determinados acontecimentos (ou premissas) ocorram. As

unitins • análise e desenvolvimento de sistemas • 1º PeRÍodo 421


aula 5 • matemática PaRa comPutação

equivalências, por sua vez, possibilitam que fórmulas proposicionais ou textos


sejam substituídos sem perdas lógicas, uma vez que possuem exatamente o mesmo
valor de verdade ou falsidade. As equivalências desempenham um papel muito
importante em processos de inferência de um novo conhecimento porque apresenta
alternativas de caminhos a serem percorridos para se chegar numa conclusão.

5.1 Implicação lógica


Considerando que P e Q são duas proposições compostas, podemos dizer que
P implica em Q se P → Q for uma tautologia, ou seja, aplicado um conectivo condi-
cional com estas proposições, obtivermos todas as interpretações da tabela-verdade
como verdadeiro. Neste caso, há uma implicação ou conseqüência lógica.
Um exemplo de implicação lógica pode ser encontrado com as fórmulas
e p. Sendo a fórmula o antecedente, e p o conseqüente do condi-
cional. Com isso, vamos analisar a tabela-verdade a seguir para confirmar esta
implicação lógica.
p q p∧q (p∧q)→p
V V V V
V F F V
F V F V
F F F V

Dados os valores das interpretações da última coluna, podemos comprovar


que obtivemos uma tautologia e, desta forma, inferimos que realmente
implica na proposição p.
A representação da implicação lógica é realizada por meio do símbolo
⇒. Assim, para este exemplo, podemos expressar esta implicação lógica da
seguinte forma: .

Pensando sobre o assunto

5.2 Outras implicações lógicas


Além do exemplo anterior, na literatura, é possível encontrar outras impli-
cações lógicas já identificadas. Essas implicações são conhecidas também
como regras de inferência e nos permitem concluir o conseqüente, uma vez que

422 1º PeRÍodo • análise e desenvolvimento de sistemas • unitins


aula 5 • matemática PaRa comPutação

consideramos o antecedente verdadeiro (SOUZA, 2002). As dez regras mais


relevantes podem ser visualizadas na tabela 1 (KELLER; BASTOS, 2000).

Tabela 1 Regras de inferência.


NOME DA REGRA EXEMPLOS
Modus Ponens (M.P.)
Modus Tollens (M.T.)
Silogismo hipotético (S.H.)
Silogismo disjuntivo (S.D.)
Dilema construtivo (D.C.)

Dilema destrutivo (D.D)

Absorção (Abs.)
Simplificação (Simp.)
Conjunção (Conj.)
Adição (Ad.)

Como você deve ter observado na tabela 1, a maioria dos antecedentes é


composta por mais de uma proposição e que estão separadas por vírgula. Cada
uma dessas regras pode ser facilmente provada por meio de tabelas-verdade, a
partir da obtenção de uma tautologia como resultado. Para tanto, vamos averi-
guar a implicação lógica para as regras Modus Ponens e Modus Tollens. Assim,
teremos as seguintes tabelas-verdade:
Modus Ponens

p q p→q p∧(p→q) p∧(p→q)→q


V V V V V
V F F F V
F V V F V
F F V F V

Modus Tollens

p ¬p q ¬q p→q ¬q∧(p→q) ¬q∧(p→q)→¬p


V F V F V F V
V F F V F F V
F V V F V F V
F V F V V V V

Sendo assim, como os resultados obtidos foram tautologias, comprova-se


então a existência dessas implicações lógicas. Exemplificando agora a funciona-
lidade dessas duas regras de inferência num modo textual, analise as seguintes
frases (PINHO, 1999):

unitins • análise e desenvolvimento de sistemas • 1º PeRÍodo 423


aula 5 • matemática PaRa comPutação

1. “Se ganhar na Loteria, fico rico; ganhei na Loteria”.


2. “Se ganhar na Loteria, fico rico; não fiquei rico”.
Para estas duas frases, podemos inferir um novo conhecimento ou obter uma
conclusão do raciocínio utilizando as regras de Modus Ponens e Modus Tollens,
respectivamente. Assim, teríamos:
1. “Se ganhar na Loteria, fico rico; ganhei na Loteria;
logo, fiquei rico”.
2. “Se ganhar na Loteria, fico rico; não fiquei rico;
logo não ganhei na Loteria”.
Estes exemplos expressam exatamente a implicação dessas regras, as quais
podem ser são formalizadas com para a frase “Se ganhar na Loteria, fico
rico”, a proposição p para a frase “ganhei na Loteria”, q para a frase “fiquei rico”,
para a frase “não ganhei na Loteria” e para a frase “não fiquei rico”.
Outra forma de representação da implicação lógica é por meio do
símbolo ∴. Assim, para representar estes exemplos, teríamos e
, respectivamente.
O papel fundamental do uso dessas regras de inferência é justamente inferir
novos conhecimentos, ou seja, encontrar meios em que possamos concluir ou
deduzir que um certo fato é verdadeiro ou falso. No entanto, de acordo com
Keller e Bastos, nem sempre com estas regras apresentadas é possível demonstrar
a validade ou a não-validade de um argumento. Sendo para isso, necessário que
ocorra uma substituição de proposições de mesmo valor lógico (KELLER; BASTOS,
2000). Para tanto, na próxima seção veremos como isto pode acontecer.

Pensando sobre o assunto

5.3 Equivalência lógica


Considerando que P e Q são duas proposições compostas, podemos dizer
que P é equivalente à Q se P → Q for uma tautologia, ou seja, quando aplicado
o condicional com as fórmulas em questão, precisamos obter o valor V para
cada interpretação da tabela-verdade.
Para entender melhor esta equivalência lógica, vamos analisar se as fórmulas
e são equivalentes. Primeiramente, vamos criar uma tabela-

424 1º PeRÍodo • análise e desenvolvimento de sistemas • unitins


aula 5 • matemática PaRa comPutação

verdade para encontrar os valores lógicos de cada uma das fórmulas anali-
sadas. Em seguida, teremos que aplicar o conectivo do bi-condicional com estas
fórmulas. Se obtivermos uma tautologia na última coluna, então poderemos dizer
que p ∧ q é realmente equivalente à .
p q ¬p ¬q p∧q ¬p∨¬q ¬(¬p∨¬p) (p∧q)↔¬(¬p∨¬q)
V V F F V F V V
V F F V F V F V
F V V F F V F V
F F V V F V F V

Um aspecto a ser observado é que os valores de cada linha da tabela-ver-


dade da fórmula são exatamente iguais aos valores da fórmula equivalente
à . A representação da equivalência lógica é realizada por meio do
símbolo ⇔. Assim, podemos representar este exemplo da seguinte maneira:

Com relação às equivalências lógicas, podemos ainda apresentar três


propriedades, que são (Pinho, 1999):
• reflexiva – ocorre se
• simétrica – ocorre se , então
• transitiva – ocorre se e , então
Como você deve ter observado, a tabela-verdade é um mecanismo eficaz para
verificar se duas fórmulas são ou não equivalentes. Além disso, já existem na litera-
tura várias equivalências comprovadas, as quais veremos na próxima seção.

5.4 Outras equivalências lógicas


Dentre as equivalências existentes, as principais encontram-se apresentadas
na tabela 2 (SOUZA, 2002).
Tabela 2 Regras de equivalência.
NOME DA LEI EXEMPLOS

Leis de identidade

Leis de dominância

Leis da idempotência

unitins • análise e desenvolvimento de sistemas • 1º PeRÍodo 425


aula 5 • matemática PaRa comPutação

NOME DA LEI EXEMPLOS

Leis da comutatividade

Leis da associatividade

Leis da distributividade

Lei da dupla negação (D.N.)

Leis de De Morgan

Lei do bi-condicional
Lei da contraposição
Lei da absorção

Cada uma dessas equivalências pode ser provada com a construção da


tabela-verdade e, neste caso, teremos a obtenção da uma tautologia, quando
aplicado o conectivo do bi-condicional com as duas fórmulas analisadas. Sendo
assim, vamos comprovar as leis de De Morgan e da contraposição por meio da
apresentação de tabelas-verdade.
p q ¬p ¬q p∧q ¬(p∧q) ¬p∨¬q (¬(p∧q))↔(¬p∨¬q)
V V F F V F F V
V F F V F V V V
F V V F F V V V
F F V V F V V V

p q ¬p ¬q p→q ¬q→¬p (p→q)↔(¬q→¬p)


V V F F V V V
V F F V F F V
F V V F V V V
F F V V V V V
Fazendo uma analogia dessas equivalências com textos da linguagem
natural, então dois trechos textuais são equivalentes quando exprimem o mesmo
sentido ou idéia. Assim, vejamos o seguinte exemplo:
Vou à praia ou à piscina
Esta sentença exprime a mesma idéia se escrevêssemos “vou à piscina ou à
praia”. Esta sentença, portanto, exemplifica o uso da lei da comutatividade, que
diz: . Neste caso, não importa a ordem das proposições com o
uso da disjunção, a resposta sempre será a mesma.
Vamos agora analisar a seguinte frase:

426 1º PeRÍodo • análise e desenvolvimento de sistemas • unitins


aula 5 • matemática PaRa comPutação

“Se você continuar estudando Matemática para Computação,


então você será aprovado(a)”.
Com o mesmo sentido desta frase, poderíamos reescrevê-la da seguinte forma:
“Se você não estudar Matemática para Computação, você não será
aprovado(a)”.
Deste modo, ambas as frases são equivalentes, pois exprimem o mesmo
pensamento no que diz respeito à aprovação na disciplina de Matemática para
Computação. Este exemplo, portanto, reforça a existência da lei da contraposição.
Em suma, a partir dessas e outras equivalências, é possível substituir uma
fórmula por outra logicamente equivalente, de modo que não tenha perda de
sentido. Essas substituições podem acontecer quando se deseja alterar o modo
da fórmula num processo de raciocínio lógico.

5.5 Processo de prova


Na lógica proposicional, a partir das regras de inferência e das equivalên-
cias lógicas, apresentadas nesta aula, podemos realizar o processo de prova
por meio da dedução (SOARES, 2003). Assim, partindo de certas fórmulas
(premissas), pretendemos provar a conclusão apresentada. Para isso, aplica-
remos as regras com intuito de alcançar a conclusão proposta e, conseqüente-
mente, confirmaremos a validade de um argumento. O processo de prova é visto
como um conjunto finito de linhas (etapas ou passos) em que cada linha é enume-
rada. Inicialmente, temos a apresentação das premissas disponíveis com as suas
identificações (P - premissa), começando com a numeração em um. Em seguida,
são apresentadas as fórmulas intermediárias obtidas durante a prova, sendo
todas também enumeradas e com a identificação da(s) linha(s) aplicada(s), bem
como a regra utilizada (ver tabelas 1 e 2 desta aula). Em suma, o processo de
prova é basicamente um procedimento mecânico em que é necessário combinar
as linhas existentes com as regras (inferência e equivalência) para se obter a
conclusão apresentada.
Desta maneira, vamos acompanhar cada passo do processo de prova do
argumento . Primeiramente, é importante relembrar que
e são premissas e q é a conclusão. Ressaltando que obtemos
esta informação quando observamos a presença do ∴, que separa as premissas
da conclusão. Sendo assim, estas premissas serão apresentadas nas duas
primeiras linhas do processo. Aplicando as regras de inferência e as equivalên-
cias nestas duas premissas com o objetivo de alcançar a conclusão, temos:
1. .................... P
2. ........................... P
3. ................................ 2 D.N. (Dupla negação)

unitins • análise e desenvolvimento de sistemas • 1º PeRÍodo 427


aula 5 • matemática PaRa comPutação

4. ............................. 1,3 M.P. (Modus Ponens)


5. q ................................... 4 D.N. (Dupla negação)
Neste caso, dizemos que o argumento é válido
porque conseguimos obter a conclusão.

Observe agora a prova do argumento . Neste


caso, temos as seguintes linhas do processo de prova:

1. ............... P

2. ............................. P

3. q ................................... P

4. p ................................... 2 D.N. (Dupla negação)

5. ............................. 3,4 Conj. (Conjunção)

6. .............................. 1,5 M.P. (Modus Ponens)

7. s.................................... 6 Simp. (Simplificação)

Neste exemplo, também conseguimos provar a validade do argumento. Para


isso, usamos as regras de inferência conjunção, Modus Ponens e simplificação,
bem como a equivalência da dupla negação.

Mais exemplo de prova de validade de argumentos pode ser conferido com


a fórmula .

1. p ................................... P

2. ..................... P

3. ........................... 2 D.N. (Dupla negação)

4. q ................................... 1,3 M.P. (Modus Ponens)

5. .......................... 4 Ad. (Adição)

Após exemplificar algumas provas de validade de argumento, finalizamos


assim a nossa quinta aula.

Nesta aula, vimos os conceitos e alguns exemplos de implicação e


equivalência lógica entre fórmulas proposicionais. Também apresentamos
a existência de várias leis da lógica que exprimem implicação, bem como
equivalências entre fórmulas, tais como Modus Ponens, Modus Tollens e asso-
ciatividade. Assim como nas fórmulas, estas equivalências e implicações

428 1º PeRÍodo • análise e desenvolvimento de sistemas • unitins


aula 5 • matemática PaRa comPutação

podem inclusive ser aplicadas num contexto textual em que existam argu-
mentações. Sendo assim, a partir de determinadas sentenças, conseguimos
concluir um resultado pertinente.

1. Considerando que duas fórmulas são equivalentes quando ambas possuem


os mesmos valores lógicos, assinale a alternativa que possui uma relação de
equivalência entre as fórmulas.
a) e
b) e
c) e
d) e

2. Utilizando tabelas-verdade, verifique se existe uma relação de implicação


lógica entre as seguintes fórmulas:
a)
b)

3. Prove, por meio de tabelas-verdade, as seguintes leis de equivalência.


a) dupla negação
b) identidade
c) dominância

4. Considerando a frase “Se estudo, consigo aprovação nas disciplinas, e se


consigo aprovação nas disciplinas, consigo me formar, logo, se estudo,
consigo me formar”, analise a veracidade das afirmações apresentadas a
seguir e, depois, assinale a alternativa correta.
I. É um exemplo de silogismo hipotético
II. É um exemplo de Modus Tollens
III. Pode ser expressa por
IV. Pode ser expressa por

a) as afirmativas I e III estão corretas;


b) as afirmativas II e III estão corretas;
c) as afirmativas I e IV estão corretas;
d) as afirmativas II e IV estão corretas.

unitins • análise e desenvolvimento de sistemas • 1º PeRÍodo 429


aula 5 • matemática PaRa comPutação

5. Realize o processo de prova de validade de argumento, por meio das


regras de inferência e das equivalências lógicas para o argumento
.

Na atividade um, a resposta correta é a alternativa (d), pois como pode ser
observado na tabela-verdade a seguir, uma tautologia é encontrada quando
utilizamos um bi-condicional com as fórmulas e .
p q ¬p p→q ¬p∨q (p→q)↔(p∨q)
V V F V V V
V F F F F V
F V V V V V
F F V V V V
Com as alternativas (a), (b) e (c), este resultado não é obtido.
Na atividade dois, a alternativa (a) possui uma relação de implicação entre
as fórmulas, isto é, , conforme apresentada na tabela-verdade apre-
sentada a seguir.
r s r∧s s∧r (r∧s)→(s∧r)
V V V V V
V F F F V
F V F F V
F F F F V

p q ¬p q→p q→¬p p→(q→¬p) p→(q→¬p)→q→p


V V F V F F V
V F F V V V V
F V V F V V F
F F V V V V V
Na atividade três, para provar as leis de dupla negação, identidade e domi-
nância, precisamos criar as seguintes tabelas-verdade.
Dupla negação
p ¬p ¬(¬p) p↔¬(¬p)
V F V V
F V F V
Identidade
p p∧V p∨F p↔(p∧V) p↔(p∨F)
V V V V V
F F F V V
Dominância

430 1º PeRÍodo • análise e desenvolvimento de sistemas • unitins


aula 5 • matemática PaRa comPutação

p p∨V p∧F (p∨V)↔V (p∧F)↔F


V V F V V
F V F V V
Na atividade quatro, a resposta correta é a alternativa (c). Esta afirmativa refere-se
à frase apresentada é um silogismo hipotético (afirmativa I) e que a mesma pode ser
expressada por meio da fórmula (afirmativa IV). Um silo-
gismo hipotético está relacionado a um encadeamento de caminhos, pois se temos
e , então conseguimos concluir que . As
demais afirmativas estão incorretas porque com a frase em questão não se refere
à regra do Modus Tollens (afirmativa II) e também porque é necessário o uso do
condicional ao invés do operador de conjunção (afirmativa III).
Na atividade cinco, o objetivo é verificar a capacidade do aluno em provar
argumentos com o uso de regras de inferência e das equivalências lógicas. Assim, as
linhas da prova do argumento podem ser observadas a seguir:

1. ..................... P

2. p ................................... P

3. ............................. 1, 2 M. P. (Modus Ponens)

4. q ................................... 3 Simp. (Simplificação)

5. ............................. 2, 4 Conj. (Conjunção)


Com isso, podemos dizer que o argumento é válido,
pois a partir das duas premissas conseguimos alcançar a conclusão por meio
das regras de inferência Modus Ponens, Simplificação e Conjunção.

COPI, Irving M. Introdução à lógica. 2. ed. São Paulo: Mestre Jou, 1978.
KELLER, Vicente; BASTOS, Cleverson L. Aprendendo lógica. Petrópolis: Vozes, 2000.
PINHO, Antônio. A. Apostila de introdução à lógica matemática. Rio de Janeiro,
1999.
SOARES, Edvaldo. Fundamentos de lógica: elementos da Lógica Formal e Teoria
da Argumentação. São Paulo: Atlas, 2003.
SOUZA, João Nunes de. Lógica para ciência da computação. Rio de Janeiro:
Campus, 2002.

unitins • análise e desenvolvimento de sistemas • 1º PeRÍodo 431


aula 5 • matemática PaRa comPutação

Anotações

432 1º PeRÍodo • análise e desenvolvimento de sistemas • unitins


aula 6 • matemática PaRa comPutação

ao visto na lógica proposicional, e em seguida estudaremos formas de


representação, implicação e equivalência lógica.

Aula 6

unitins • análise e desenvolvimento de sistemas • 1º PeRÍodo 433


aula 6 • matemática PaRa comPutação

Lógica de predicados

Esperamos que, ao final desta aula, você seja capaz de:


• compreender a linguagem da lógica de predicados;
• representar conhecimento de um domínio de aplicação por meio da
linguagem da lógica de predicados.

O entendimento do alfabeto da lógica proposicional é importante para a


compreensão do alfabeto da lógica de predicados, uma vez que os símbolos
lógicos e não-lógicos são utilizados com o mesmo sentido.

A linguagem da lógica proposicional, estudada em aulas anteriores, é limi-


tada para representar relações entre objetos do mundo real. Por exemplo: se
usássemos a linguagem proposicional para representar a relação “João é pai
de Ana” e “José é pai de João”, precisaríamos usar duas letras sentenciais (ou
proposições) diferentes para expressar a mesma idéia, que é a relação de paren-
tesco. Assim, teríamos, por exemplo, P para simbolizar que “João é pai de Ana”
e Q para simbolizar “José é pai de João”. No entanto, ambas as proposições
representam a mesma informação no que se diz respeito à relação de parentesco
entre João e Ana e entre José e João. Outra limitação da lógica proposicional é
a que esta linguagem tem baixo poder de expressão, pois é incapaz de repre-
sentar instâncias de uma propriedade geral. Para sanar problemas deste tipo,
surgiu então a lógica de predicados que é uma extensão da lógica proposicional
(ARANHA; MARTINS, 2003).
A lógica de predicados é também conhecida na literatura como lógica de
primeira ordem ou cálculo de predicados. Esta lógica possibilita captar relações
entre indivíduos de um mesmo domínio e permitir concluir particularidades de
uma propriedade geral dos indivíduos de um domínio, assim como derivar gene-
ralizações a partir de fatos que valem para um indivíduo qualquer do domínio.
Desta maneira, expressar sentenças com as palavras “existe”, “qualquer”,
“todos”, “alguns” e “somente”, por exemplo, é possível. Para ter este grande
poder de expressão, a lógica de predicados dispõe uma variedade de símbolos.
Então vamos conhecer o seu alfabeto inicialmente e, em seguida, como repre-
sentar conhecimento, relações entre objetos, mais especificamente.

434 1º PeRÍodo • análise e desenvolvimento de sistemas • unitins


aula 6 • matemática PaRa comPutação

6.1 Alfabeto
O alfabeto da linguagem da lógica de predicados consiste em símbolos
lógicos e não-lógicos. Os símbolos lógicos são caracterizados por:
• pontuação: (, )
• conectivos: ¬, ∧, ∨, →, ↔
• quantificadores: ∀, ∃
Os símbolos não-lógicos são definidos por:
• variáveis: por convenção, letras do fim do alfabeto, tais como: ...x, y, z;
• constantes: por convenção, letras do início do alfabeto, tais como a,
b, c...;
• predicativos (ou predicados): por convenção, letras do meio para o fim
do alfabeto, tais como: ...p, q, r... ou uma palavra em letras minúsculas
para ser mais representativa;
• funções: por convenção, letras do meio do alfabeto, tais como: ...f, g,
h... ou uma palavra em letras minúsculas para ser mais representativa.
Como dito anteriormente, a lógica de predicados é uma extensão da lógica
proposicional, e, desta maneira, tanto os símbolos de pontuação quanto os
conectivos lógicos possuem o mesmo significado.
Com relação aos quantificadores, tem-se o ∀ (universal) e ∃ (existencial)
para expressar propriedades que valem para todos os indivíduos do domínio
ou para alguns indivíduos do domínio, respectivamente. Estes quantificadores
estarão sempre acompanhados de uma variável (símbolo não-lógico) para
captar o conceito das palavras “para qualquer” e “para algum”, respectiva-
mente. É importante ressaltar que variáveis diferentes não designam necessaria-
mente objetos diferentes e que a escolha de variáveis não faz diferença para o
significado (FRANCO, 2008).

Pensando sobre o assunto

As variáveis nesta lógica designam a representação de um exemplo ou indi-


víduo do domínio a que está se referindo. Assim, podemos dizer, por exemplo,
que existe um aluno inteligente na sala de aula, porém esta pessoa não está
sendo especificada e sim informando a existência de tal fato. Portanto, uma vari-
ável representa um elemento de quaisquer domínios de aplicação.

unitins • análise e desenvolvimento de sistemas • 1º PeRÍodo 435


aula 6 • matemática PaRa comPutação

As constantes, por sua vez, são usadas para definir ou especificar um deter-
minado indivíduo do domínio. Considerando ainda o exemplo anterior, poderí-
amos definir que João é o aluno inteligente da sala de aula. Observe que, neste
caso, estamos definindo exatamente quem é a pessoa inteligente da sala. Cada
constante indica exatamente um objeto particular.
Os símbolos predicativos ou predicados representam o conceito de relação
entre um ou mais indivíduos de um domínio. Com este tipo de símbolo, poderí-
amos criar um predicado chamado “pai” para representar a relação de paren-
tesco entre João e Ana, por exemplo, conforme o conhecimento fornecido no
início desta aula. Os predicados (nomes de relação) podem possuir um ou
mais argumentos. A definição da quantidade de argumentos num predicado
dependerá da forma como os relacionamentos entre os objetos estão sendo
tratados. Com relação à quantidade de argumentos que um predicado possui,
chamamos de aridade.
Por exemplo: os predicados vereador(juarez) e pai(joão, ana) têm aridade
igual a um e dois, respectivamente. No primeiro predicado, representamos que
Juarez é um vereador e, neste caso, a leitura deste predicado inicia-se pela
constante (juarez) e, depois, lê-se o nome do predicado (vereador). No segundo
exemplo, representamos que João é pai de Ana e a forma de leitura começa com
o primeiro parâmetro (joão), depois analisa o nome do predicado (pai) e, em
seguida, retorna ao segundo parâmetro (ana).
As funções são usadas para referenciar objetos particulares sem usar seus
nomes, ao contrário dos predicados. Estes agem reunindo informações também
como, por exemplo, uma variável e uma constante.

6.2 Termos e átomos


Na lógica de predicados, existem dois elementos básicos para a definição
das fórmulas, que são: termos e átomos. Para entender melhor esses elementos,
vamos fazer uma analogia com o que ocorre com a língua portuguesa. Observe,
inicialmente, a seguinte frase:
A capital do Tocantins é Palmas?
Neste exemplo, iremos obter um valor verdadeiro ou falso. Neste caso,
temos um valor verdadeiro, pois Palmas é a capital do Tocantins. Mas agora
observe a seguinte frase:
Qual a capital do Tocantins?
Neste caso, a resposta não é um valor verdadeiro ou falso, mas sim um
nome que corresponda à capital, o qual chamaremos de objeto. Neste tipo de
lógica, as sentenças que representam objetos são chamadas de termos (SOUZA,
2002). Assim, para ser um termo é necessário seguir as seguintes regras:

436 1º PeRÍodo • análise e desenvolvimento de sistemas • unitins


aula 6 • matemática PaRa comPutação

• toda variável é um termo;


• toda constante é um termo;
• se t1, t2,...,tn são termos e ƒ é um símbolo para a função n-ária, então
ƒ(t1, t2,...,tn) é um termo.
Um átomo, por sua vez, ocorre se t1, t2,...,tn são termos e p é um símbolo para
o predicado n-ário, então p(t1, t2,...,tn) é um átomo. Então vamos ao exemplo:
p(ƒ(x,a),x). Neste caso, ƒ(x,a) e x são termos e a aplicação de p a estes termos,
tornou-se num átomo.
Assim como na lógica proposicional, as fórmulas da linguagem da lógica de
predicados são construídas a partir da concatenação dos símbolos do alfabeto.
Porém, não é qualquer concatenação de símbolos que constitui uma fórmula bem
formada. Deste modo, uma fórmula da lógica de predicados segue as seguintes
regras (SOUZA, 2002):
• todo átomo é uma fórmula;
• se P é uma fórmula então , a negação de P, é uma fórmula;
• se P e Q são fórmulas então , a disjunção das fórmulas P e Q, é
uma fórmula;
• se P e Q são fórmulas então , a conjunção das fórmulas P e Q,
é uma fórmula;
• se P e Q são fórmulas então , o condicional das fórmulas P e Q,
é uma fórmula;
• se P e Q são fórmulas então , o bicondicional das fórmulas P e
Q, é uma fórmula;
• se P é uma fórmula e x uma variável, então e são
fórmulas.
Finalizamos aqui a parte sintática da lógica de predicados, ou seja, a
sintaxe, vamos estudar a seguir sobre a semântica (significado) desta lógica.

6.3 Interpretação
Como a lógica de predicados possui um alfabeto bem mais diversificado se
comparado com o da lógica proposicional, as interpretações das fórmulas tornam-
se, naturalmente, mais bem elaboradas. Observe a seguir a simbologia da lógica
de primeira ordem em quatro sentenças bastante conhecidas na literatura, bem
como a sua forma de leitura, conforme pode ser encontrado em (ABAR, 2008):
• Todo s é p:
Usando a letra “x”, como uma variável para representar objetos indivi-
duais, expressamos tal enunciado por: “qualquer que seja x, se x é s, então x é

unitins • análise e desenvolvimento de sistemas • 1º PeRÍodo 437


aula 6 • matemática PaRa comPutação

p”. Outras opções de leitura são: “s são p”; “cada s é um p”; “qualquer s é um
p” e “todos os objetos que tem propriedade s são objetos que tem propriedade
p”. Sendo assim, podemos inferir que “Todo s é p” está relacionado a uma
universal afirmativa.
• Alguns s são p:
Neste caso, o enunciado pode ser expresso por “para pelo menos um x, x é
s e x é p”. Outras opções de leitura são: “existem s que são p” e “há s que são
p”. Este exemplo, ao contrário do enunciado anterior, restringe um certo grupo
do todo e assim está relacionando uma particularidade afirmativa.
• Alguns s são não p:
Para esta situação, temos a interpretação que “existe um x tal que x é s
e x não é p”. Podemos ainda ler esta sentença como “alguns s não são p”;
“certos s não são p”; “existem s que não são p” e “pelo menos um s não é
p”. Observando este enunciado, identificamos que existe uma seleção do todo,
porém com aspecto de negação. Assim, dizemos que obtemos uma particulari-
dade negativa.
• Nenhum s é p:
Nesta última sentença, temos “qualquer que seja x, se x é s, então x não é
p”. É possível ainda ler esta sentença como “ninguém que seja s é p”; “nada que
seja s é p” e “nenhum dos s é p”. Neste exemplo, obtemos uma generalização
negativa, pois qualquer que seja x, este não é p.
Assim, a partir da linguagem natural usada no cotidiano, podemos expressar
a mesma idéia utilizando o alfabeto da lógica de predicados. Nestes últimos exem-
plos, foram usados os predicados s e p, os quais não expressam muita informação
para o usuário. Por isso, é importante que se apresente nomes de predicados
condizentes com o que se deseja representar, uma vez que estes auxiliam à inter-
pretação do pensamento. Vale a pena lembrar que a definição de um nome do
predicado é de sua escolha. Veja na tabela a seguir alguns exemplos do uso desta
representação, sendo neste caso com nomes de predicado mais significativos.

Tabela 1 Linguagem natural e lógica de predicados.


LINGUAGEM NATURAL LÓGICA DE PREDICADOS
Todos os homens são mortais ∀x(homem(x) → mortal(x))
Alguns gatos são bonitos ∃x(gato(x) ∧ bonito(x))
Nenhuma baleia é réptil ∀x(baleia(x) → ¬réptil(x))
Meninos e meninas gostam de
∀ x((menino(x) ∨ menina(x)) → gosta_brincar(x))
brincar
Há pintores que não são
∃x(pintor(x) ∧ ¬artista(x) ∧ artesão(x))
artistas mas artesãos
João não foi o primeiro homem ∃x(homem(x) ∧ nasceu_antes(x, joão))

438 1º PeRÍodo • análise e desenvolvimento de sistemas • unitins


aula 6 • matemática PaRa comPutação

LINGUAGEM NATURAL LÓGICA DE PREDICADOS


Todos os números ímpares não
∀ x(número(x) ∧ ímpar(x) → ¬divisível(x,2))
são divisíveis por 2
Todos os cachorros são prote-
∀x∀y(homem(x) ∧ cachorro(y) → protege(x,y))
gidos pelos homens
Todas as crianças são mais
∀x∀y(criança(x) ∧ pai(y, x) → jovem(x, y))
jovens que os pais

Como você deve ter observado, numa mesma fórmula pode existir mais de um
quantificador, conectivo, variável ou predicado. Analisando a frase “Meninos e
meninas gostam de brincar”, por exemplo, observamos que a conjunção “e” apre-
sentada na sentença não está expressa na sua fórmula. Na verdade, ao invés do “e”,
tem-se a representação do “OU” (∨). E, neste caso, a representação está correta?
A resposta é sim, pois avaliando a fórmula, veremos que a variável x, que é um
elemento do domínio, pode ser um menino ou uma menina somente, nunca os dois
ao mesmo tempo. E, ou menino ou menina, seja este ou esta, gosta de brincar.
Com relação à sentença “Todas as crianças são mais jovens que os pais”,
observe que foram utilizados dois quantificadores universais, um com a variável
x e outro com a variável y. Para expressar que uma criança é mais jovem que
pai, apresentamos inicialmente a condição necessária para que isto aconteça.
Ou seja: é preciso que o x seja uma criança e o y seja o pai da criança. Caso
positivo, então podemos inferir que o x é mais jovem do que o y.
Esperamos que esses exemplos tenham sido suficientes para você ter uma
noção do que se pode fazer com o uso dos quantificadores. No entanto, para
compreender melhor ainda a abrangência dos quantificadores, observe, na
figura 1, a localização de quatro exemplos num plano cartesiano.

Figura 1 Abrangência dos quantificadores.

Fonte: adaptado de Soares (2003).

Nesta figura é possível observar que quando se acompanham as linhas verti-


cais tem-se uma generalização (baixo para cima) ou uma restrição (cima para
baixo). Ambas informam a mesma verdade ou falsidade, porém diferenciam em
termos de quantidade. Ao acompanhar a linha horizontal mais inferior, observa-
se uma oposição parcial de um lado para o outro, pois apenas o valor de um

unitins • análise e desenvolvimento de sistemas • 1º PeRÍodo 439


aula 6 • matemática PaRa comPutação

predicado está sendo alterado, opondo-se assim em termos de qualidade. Já na


linha horizontal superior tem-se uma oposição em termos de qualidade, porque
uma afirma e outra nega um mesmo predicado de um mesmo sujeito, universal-
mente. E, por fim, as diagonais apresentam a oposição mais forte porque não há
nada que se possa convir, se opondo em termos de quantidade e qualidade.

6.4 Equivalências lógicas


A lógica de predicados é uma linguagem utilizada para a representação de
conhecimento, observando os objetos existentes e os relacionamentos entre eles.
Dentre as linguagens de representação disponíveis, a lógica de predicados é
uma das linguagens mais estudadas, porque esta pode ser aplicada em diversos
domínios (RUSSELL; NORVIG, 2003). Para esta representação, podemos usar
diferentes maneiras para expressar a mesma idéia ou conceito.
Se quiséssemos representar o conceito de que nem todos os indivíduos
possuem a propriedade p, poderíamos usar a representação: . Neste
caso, usamos o quantificador universal com o conectivo de negação, informando
que não é verdade que todo x tem a propriedade p. Além disso, para expressar
esta mesma idéia, podemos utilizar também o quantificador existencial. Neste
caso, teremos a expressão . Para este caso, informamos que existe pelo
menos um x que não tem a propriedade p. Ambas as representações são válidas
para a expressão de que nem todos os indivíduos possuem a propriedade p.
Logo, concluímos que e são equivalentes logicamente, ou
seja, ⇔ .
E, se agora quiséssemos representar o conceito de que não existe um indi-
víduo do domínio que possua a propriedade p. Para esta situação, poderíamos
usar o quantificador existencial com o conectivo da negação como, por exemplo,
. Observe que o conectivo de negação está externo, negando toda a
expressão e, assim, representando que não existe um x que tem a propriedade
p. De forma similar à situação anterior, este conceito pode ainda ser expresso
com o quantificador universal. Neste caso, temos , em que todo x
não tem a propriedade p. Portanto, concluímos que as expressões
e são equivalentes, ou seja, ⇔ . É importante
lembrar que como estas representações são equivalentes logicamente, ambas
podem ser usadas indistintamente.
Além dessas equivalências apresentadas, podemos ainda mencionar as
seguintes equivalências:

440 1º PeRÍodo • análise e desenvolvimento de sistemas • unitins


aula 6 • matemática PaRa comPutação

No primeiro caso, temos que todo x tem a propriedade p é equi-


valente a dizer que não é verdade que um x tal que não possui a propriedade
p, representado por . Já para o segundo caso, temos que existe pelo
menos um x tal que tem a propriedade p . Assim, poderíamos expressar
a mesma idéia com o uso do quantificador universal, informando que não é
verdade que todo x não tem a propriedade p .
Enfim, para todas essas situações, o papel fundamental da equivalência é
possibilitar a substituição de uma fórmula pela a outra sem perdas lógicas. Com
isso, recomenda-se o uso da versão em que seja mais familiar e compreensiva.

6.5 Implicações lógicas


Em Wikipédia (2008), é possível encontrar uma lista de implicações usando o
alfabeto da lógica de predicados. Dentre estas implicações, podemos destacar:




Estes exemplos reforçam o comportamento dos quantificadores e de suas
variáveis em fórmulas no que diz respeito à ordem de apresentação. Assim,
finalizamos a nossa sexta aula.

A lógica dos predicados é uma extensão da lógica proposicional, sendo


a primeira bem mais expressiva, pois é possível criar nomes de relação entre
objetos de um domínio. Isto se deve ao fato também de que na lógica de predi-
cados, as proposições ganham parâmetros e também existem os quantificadores.
Apresentamos também que assim como na lógica proposicional, na lógica de predi-
cados é possível expressar equivalências entre fórmulas de modo que não se tenha
perda lógica. Deste modo, um conhecimento expresso por meio do quantificador
universal pode ser reescrito com o uso do quantificador existencial, e vice-versa.

1. Formalize os enunciados a seguir, usando o alfabeto da lógica de primeira


ordem.
a) Nenhum tubarão é considerado uma pessoa.
b) Nem todos os tubarões são carnívoros.
c) Só verdadeiros e falsos são valores lógicos.
d) Todos os tubarões têm dentes afiados.

unitins • análise e desenvolvimento de sistemas • 1º PeRÍodo 441


aula 6 • matemática PaRa comPutação

2. Relacione a primeira coluna com a segunda, de forma que ambos expressem o


mesmo conhecimento, embora estejam usando linguagens diferentes. Considere
ainda que f(x) representa x é um feiticeiro, h(x) representa x é um humano, p(x)
representa x é um número par e pr(x) representa x é um número primo.
I. ( ) Para todo número, existe um outro número
que é maior ou igual a ele e é par
II.
( ) Existem feiticeiros humanos
III. ∀x∃y (y ≥ x ∧p(y))
( ) Nem todo homem é feiticeiro
IV.
( ) Existem números pares e primos

a) III, II, I, IV c) IV, II, I, III


b) IV, I, II, III d) III, I, II, IV

3. Considerando que a relação a(x, y) representa x é avô de y e p(x, y) representa


x é pai de y, escreva usando a linguagem natural a seguinte expressão:

4. A partir da linguagem da lógica de predicados, é possível representar o mesmo


conhecimento de diversas formas. Sendo assim, analise as frases “Alguns peixes
são peixes_palhaço” e “Nenhum peixe é peixe_palhaço” e, em seguida, assi-
nale a alternativa que possua sua representação da forma correta.
a) ∃x (peixe(x) ∨ surubim (x)); ¬∀x (peixe(x) → surubim(x))
b) ∃x (peixe(x) ∧ surubim (x)); ∀x (peixe(x) → ¬ surubim(x))
c) ∃x (surubim (x) ∧ peixe (x)); ∀x (peixe(x) → ¬ surubim(x))
d) ∃x (peixe(x) ∨ surubim (x)); ∀x (¬peixe(x) → surubim(x))

Na atividade um, os enunciados podem ser expressos da seguinte maneira: ∀x


(tubarão(x) → ¬pessoa(x)) para a alternativa (a); ¬∀x (tubarão(x) → carnívoro(x))
para a alternativa (b); ∃x ((falso(x) ∨ verdadeiro(x)) → valor_lógico(x)) para a
alternativa (c) e ∀x (tubarão(x) → tem_dentes_afiados(x)) para a alternativa (d).

Anotações

442 1º PeRÍodo • análise e desenvolvimento de sistemas • unitins


aula 6 • matemática PaRa comPutação

ceiro. Isto é obtido pela negação externa do quantificador universal. A


expressão ∀x∃y(y ≥ x∧p(y)) informa que para todo x, existe um y por

meio do uso de dois quantificadores simultaneamente. E exprime


que existe pelo menos um elemento que possui as propriedades p e pr ao mesmo
tempo, que no caso são par e primo, respectivamente.
Na atividade três, a informação que está sendo transmitida pela expressão
é que para x ser avô de y, tem que existir um g, tal que x é pai de g e que g é
pai de y. Somente com essas condições, poderemos dizer que x é avô de y. Esta
situação é análoga à lei do silogismo hipotético, apresentada na aula quatro.
Na atividade quatro, a resposta correta é a alternativa (b), pois para a
primeira frase precisaremos utilizar o quantificador existencial, uma vez que
queremos expressar um conjunto de elementos, e também o uso da conjunção
dos predicados peixe e surubim. Na segunda frase, precisaremos usar o quan-
tificador universal, uma vez que queremos expressar todos os elementos do
conjunto e, ainda, que quando x for peixe, então este não é surubim.

ABAR, Celina. Noções de lógica matemática. Disponível em: <http://www.


pucsp.br/~logica/CalculodePredicados.htm>. Acesso em: 5 ago. 2008.
ARANHA, Maria Lúcia de Arruda; MARTINS, Maria Helena Pires. Filosofando:
introdução à filosofia. 3. ed. São Paulo: Moderna, 2003.
FRANCO, Márcia Islabão. Introdução à lógica de predicados. Disponível em:
<http://www.inf.ufrgs.br/~jkv/LogicaPred.pdf>. Acesso em: 10 jul. 2008.
RUSSELL, S.; NORVIG, P. Artificial Intelligence: A Modern Approach. 2. ed.,
Prentice-Hall, Inc, 2003.
SOARES, Edvaldo. Fundamentos de lógica: elementos da Lógica Formal e Teoria
da Argumentação. São Paulo: Atlas, 2003.
SOUZA, João Nunes de. Lógica para ciência da computação. Rio de Janeiro:
Campus, 2002.

unitins • análise e desenvolvimento de sistemas • 1º PeRÍodo 443


aula 6 • matemática PaRa comPutação

WIKIPÉDIA. Enciclopédia Livre. Lógica de primeira ordem. Disponível em:

<http://pt.wikipedia.org/wiki/L%C3%B3gica_de_primeira_ordem>. Acesso

em: 5 ago. 2008.

Estamos quase no fim da nossa disciplina. A seguir, teremos a nossa última

aula que aborda uma introdução à álgebra de Boole e mapas de Karnaugh.

444 1º PeRÍodo • análise e desenvolvimento de sistemas • unitins


aula 7 • matemática PaRa comPutação

Aula 7

unitins • análise e desenvolvimento de sistemas • 1º PeRÍodo 445


aula 7 • matemática PaRa comPutação

Álgebra de Boole e mapas


de Karnaugh

Esperamos que, ao final desta aula, você seja capaz de:


• compreender a álgebra booleana e seus teoremas para empregá-los nas
diversas áreas de conhecimento;
• minimizar funções utilizando Mapas de Karnaugh.

Números de base binária, juntamente com o estudo das tabelas-verdade, são


conceitos importantíssimos para o estudo desta aula. Por isso, recomendamos o
estudo da aula quatro deste caderno de conteúdos e atividades juntamente com
as aulas três e quatro da apostila de Computação Básica.

Os circuitos digitais de computadores e outros sistemas digitais são projetados


e têm seu comportamento analisado em termos de uma disciplina matemática,
conhecida como álgebra booleana. Esse nome é uma homenagem ao matemático
inglês George Boole, que propôs os princípios básicos dessa álgebra em 1854, em
seu tratado An Investigation of the Laws Thought on Which to Found Mathematical
Theories of Logic and Probabilities. Em 1938, Claude Shannon, um assistente de
pesquisa do Departamento de Engenharia Elétrica do MIT (Massachusetts Institute
of Technology), sugeriu que a álgebra booleana poderia ser usada para solucionar
problemas relativos ao projeto de circuitos de comunicação de relés. As técnicas
sugeridas por Shannon, por sua vez, foram subseqüentemente usadas na análise
e projeto de circuitos eletrônicos digitais (STALLINGS, 2002).
Stallings (2002) ainda afirma que a álgebra booleana tornou-se uma ferra-
menta conveniente em duas áreas:
• análise: ela constitui uma forma econômica de descrever a função de
um circuito digital;
• projeto: dada uma função a ser implementada, a álgebra booleana pode ser
usada para desenvolver uma implementação simplificada para essa função.
Ao utilizar funções mais complexas com álgebra booleana, muitas vezes
temos a necessidade de simplificá-las para implementar circuitos lógicos mais
eficientes. Para uma simplificação correta, utilizando-se exaustivamente de

446 1º PeRÍodo • análise e desenvolvimento de sistemas • unitins


aula 7 • matemática PaRa comPutação

tabelas-verdade, utilizamos os Mapas ou Diagramas de Karnaugh. Essas estru-


turas são de extrema importância nos projetos de circuitos digitais.
Nesta aula, definiremos como se comporta a álgebra booleana e suas
propriedades e, após esse primeiro momento, iremos trabalhar a definição e o
uso dos Mapas de Karnaugh para simplificação de funções booleanas.
Agora vamos estudar, caro aluno? Mão na massa e bons estudos!

7.1 Álgebra Booleana


A álgebra booleana, também conhecida na literatura como álgebra de
Boole, é uma ferramenta matemática relativamente simples que nos permite
descrever as relações entre as saídas dos circuitos lógicos e suas entradas como
uma equação algébrica (uma expressão booleana) (TOCCI; WIDMER, 2003).
Como em outras álgebras, a álgebra booleana faz uso constante de variáveis
e operações, sendo que as utilizadas nesse tipo de lógica são estritamente lógicas.
Sendo assim, os únicos valores que as variáveis podem ter na álgebra booleana
são zero e um. Quando estamos trabalhando em nível computacional, podemos
descrever esses valores como outros, os quais são mostrados na Tabela 1.
Tabela 1 Valores lógicos em nível computacional.
NÍVEL LÓGICO ZERO NÍVEL LÓGICO UM
Falso Verdadeiro
Desligado Ligado
Baixo Alto
Não Sim
Chave aberta Chave fechada
Fonte: Tocci e Widmer (2003).

Tocci e Widmer (2003) afirmam que como os valores possíveis de uma variável
são apenas dois, a álgebra booleana é mais fácil de ser manipulada se comparada
com a álgebra convencional. Na álgebra booleana, não existem frações, decimais,
números negativos, raízes quadradas, raízes cúbicas, logaritmos, números imagi-
nários e assim por diante. A álgebra booleana tem, de fato, apenas três operações
básicas: OR, AND e NOT. Agora vamos passar para o estudo dessas operações.

7.2 Operações básicas da álgebra Booleana


Assim como em qualquer tipo de álgebra, a booleana tem suas próprias
operações básicas, as quais são denominadas como:
• E (AND)
• OU (OR)
• Não ou Complementação (NOT)

unitins • análise e desenvolvimento de sistemas • 1º PeRÍodo 447


aula 7 • matemática PaRa comPutação

Todas as operações booleanas podem ser representadas por essas opera-


ções básicas, sendo que as mesmas podem ter combinações entre si, origi-
nando assim operações mais elaboradas e que representam melhor circuitos ou
projetos digitais.
As operações lógicas básicas são simbolicamente representadas, respectiva-
mente, por ∙, + e uma barra horizontal sobre o operando (STALLINGS, 2002):
A AND B = A ∙ B
A OR B = A + B
NOT A =
Alguns autores têm como notação para a operação NOT o apóstrofo (‘).
Para esta aula, tomaremos como notação oficial o apóstrofo.
Stallings (2002) define as operações básicas da álgebra de Boole da
seguinte forma:
• A operação AND tem como resultado o valor verdadeiro (valor binário 1)
se e somente se ambos os operandos têm valor verdadeiro.
• A operação OR tem como resultado verdadeiro, se qualquer dos
operandos, ou ambos, têm valor verdadeiro.
• A operação unária NOT inverte o valor do operando.
Tomando como base as definições das operações básicas, podemos construir a
tabela-verdade para cada uma delas. Veja que o conceito de tabela-verdade, estu-
dado na aula quatro dessa disciplina, será empregado com freqüência nessa aula.
Tabela 2 Tabela-verdade das operações básicas da álgebra Booleana.
A B A’ A•B A+B
0 0 1 0 0
0 1 1 0 1
1 0 0 0 1
1 1 0 1 1
A operação NOT, também denominada inversor, é diferente das opera-
ções OR e AND pelo fato de poder ser realizada sobre uma única variável de
entrada, o que a torna uma operação unária. O resultado dessa operação pode
ser expresso como:
X = A’
Essa expressão é lida como “x é igual a A negado” ou “X é igual ao inverso
de A” ou “x é igual ao complemento de A”. Todas essas formas são usadas
comumente nas bibliografias.
Na operação AND, também mostrada na Tabela 2, podemos observar
que a saída da operação somente será verdadeira, quando ambas as entradas
também o forem. Veja que essa operação não é tratada como unária, pois

448 1º PeRÍodo • análise e desenvolvimento de sistemas • unitins


aula 7 • matemática PaRa comPutação

recebe mais de uma variável para o cálculo. A expressão que podemos utilizar
para exemplificar essa operação é:
X=A∙B

Na ausência de parênteses, a operação AND tem precedência sobre a operação OR.


Além disso, quando não há ambigüidade, a operação AND é representada pela simples
concatenação dos operandos, omitindo-se o símbolo . Portanto,

A + B C = A + (B C) = A + BC

Para finalizarmos com as operações básicas, vamos estudar agora a


operação OR. Nessa operação, as entradas A e B, mostradas na Tabela 2, só
produzirão uma saída falsa (zero), quando ambas as entradas também o forem.
Aqui na operação OR, também não temos uma operação unária, como acontece
com a operação NOT. Podemos expressá-la como:
X=A+B
Nas duas operações binárias que se apresentam como básicas, podemos
fazer analogia à aritmética binária, vista na disciplina de Computação Básica.
Nela, a soma dos números pode ser identificada como a operação básica OR da
álgebra de Boole. A multiplicação pode ser comparada como sendo a operação
básica AND da álgebra em estudo nesta seção.
Existem também operações muito úteis na álgebra Booleana: XOR, NAND e
NOR. A operação XOR efetua a operação de OU-Exclusivo de dois operandos,
resultando em valor um se e somente se exatamente um dos operandos tem valor
1. A função NAND é o complemento (NOT) da função NAND e a função NOR
é o complemento de OR (Stallings, 2002):
A NAND B = NOT (A AND B) = (A ∙ B)’
A NOR B = NOT (A OR B) = (A + B)’

7.3 Teoremas Booleanos


O estudo da álgebra de Boole não se prende apenas às operações definidas
na seção anterior. Vamos continuar o nosso estudo vendo algumas regras deno-
minadas Teoremas Booleanos. Os primeiros grupos de teoremas são denomi-
nados unários, pois são feitas operações utilizando apenas uma variável lógica.
Na tabela a seguir, mostraremos o teorema e sua definição.

Tabela 3 Teoremas Booleanas unários (TOCCI; WIDMER, 2003).

unitins • análise e desenvolvimento de sistemas • 1º PeRÍodo 449


aula 7 • matemática PaRa comPutação

Se for realizada uma operação AND de qualquer variável com zero, o


x∙0=0 resultado tem de ser zero.
Tomando como base a multiplicação convencional, o teorema é expli-
x∙1=x cado e óbvio. Qualquer número multiplicado por um, será o próprio
número. Postulado do elemento identidade da operação AND.
Pode ser provado testando cada caso. Se x = 0, então 0 ∙ 0 = 0; se x =
x∙x=x
1, então 1 ∙ 1 = 1. Portanto, x ∙ x = x.
Pode ser provado da mesma maneira que o anterior. Entretanto, pode-se
argumentar que em qualquer momento a variável x ou seu inverso deve
x ∙ x’ = 0 ser zero, então o produto lógico AND tem de ser zero. Também conhe-
cido como teorema do elemento inverso.
Zero somado a qualquer valor, não afeta esse valor, tanto na adição
x+0=x convencional como na adição booleana (OR). Postulado do elemento
identidade da operação OR.
Se for realizada uma operação OR de qualquer variável com um, o
x+1=1 resultado sempre será um.
x+x=x Provado pelo teste dos dois valores de x: 0 + 0 = 0 e 1 + 1 = 1.
Provado de maneira parecida ao anterior, ou podemos argumentar que
em qualquer instante x ou complemente de x tem de ser um, de modo que
x + x’ = 1 sempre estaremos fazendo uma operação OR entre zero e um que sempre
resultará em um. Também conhecido como teorema do elemento inverso.

Conforme Tocci; Widmer (2003), ainda existem os teoremas com mais de


uma variável, os quais podem ser classificados da seguinte forma:
a) Leis Comutativas: mostram que a ordem em que as variáveis aparecem
nas operações OR e AND não importa; o resultado é o mesmo. Como
exemplos, podemos citar:
• a + b = b + a
• a ∙ b = b ∙ a
b) Leis Associativas: dizem que podemos agrupar as variáveis em expres-
sões AND ou OR do modo que desejarmos.
• a + (b + c) = (a + b) + c = a + b + c
• a (bc) = (ab) c = abc
c) Lei Distributiva: diz que uma expressão pode ser expandida, multipli-
cando, termo a termo, da mesma maneira que na álgebra convencional.
Esse teorema também indica que podemos fatorar (colocar em evidência
termos comuns) uma expressão.
• a ( b + c) = ab + ac
• (a + b)(c + d) = ac + bc + ad + bd

450 1º PeRÍodo • análise e desenvolvimento de sistemas • unitins


aula 7 • matemática PaRa comPutação

Até o momento, os teoremas apresentados são de fácil compreensão devido


aos mesmos também existirem na álgebra convencional, a qual todos já tivemos
acesso. Mas ainda existem teoremas específicos da álgebra estudada nessa
aula, que são:
• x + xy = x
• x + x’ ∙ y = x + y
• x’ + xy = x’ + y
Cada um desses teoremas pode ser demonstrado testando todas as possibi-
lidades para x e y (Tocci e Widmer, 2003).

7.4 Teoremas de DeMorgan


Os teoremas de DeMorgan são dois dos mais importantes da álgebra
Booleana e foram uma contribuição de um grande matemático chamado
DeMorgam. Esses teoremas são extremamente úteis na simplificação de expres-
sões nas quais um produto ou uma soma de variáveis aparece negado (Tocci;
Widmer, 2003). Os dois teoremas são:
1. (x + y)’ = x’ ∙ y’
2. (x ∙ y)’ = x’ + y’
O primeiro teorema diz que, quando a soma lógica (OR) de duas variáveis é
invertida, é o mesmo que inverter cada variável individualmente e, em seguida,
fazer a operação AND entre as variáveis invertidas. O teorema 2 diz que,
quando o produto lógico (AND) de duas variáveis é invertido, é o mesmo que
inverter cada variável individualmente e em seguida fazer a operação OR entre
elas (TOCCI; WIDMER, 2003).
Os teoremas de DeMorgan podem ser demonstrados, utilizando todas as
combinações possíveis das variáveis envolvidas na expressão booleana.
Após apresentarmos os conceitos básicos da álgebra de Boole, juntamente
com alguns teoremas, apresentaremos agora um método gráfico, bastante impor-
tante para a simplificação de funções Booleanas, chamado Mapa de Karnaugh.

7.5 Mapa de Karnaugh


O Mapa de Karnaugh é um método gráfico usado para simplificar uma
equação lógica ou para converter uma tabela-verdade no seu circuito lógico
correspondente, de uma forma simples e metódica. Embora um mapa de
Karnaugh possa ser usado em problemas que envolvem qualquer número de
variáveis de entrada, sua utilidade prática está limitada a cinco ou seis variá-
veis, mesmo assim uma função com mais de quatro entradas é demasiadamente
complicado, sendo melhor resolvê-los por meio de um programa de computador
(TOCCI; WIDMER, 2003).

unitins • análise e desenvolvimento de sistemas • 1º PeRÍodo 451


aula 7 • matemática PaRa comPutação

Os diagramas foram originalmente criados por Edward Veitch (1952) e aperfeiçoados


pelo engenheiro de telecomunicações Maurice Karnaugh. Karnaugh utilizou os diagramas
para simplificar circuitos utilizados em telefonia. O nome completo do método é Veitch-
Karnaugh, em homenagem aos seus dois precursores, mas usualmente utiliza-se apenas o
nome de Karnaugh para o método (WIKIPEDIA, 2008).

Tocci e Widmer (2003) definem o formato de um mapa de Karnaugh como


sendo, assim como uma tabela-verdade, um meio de mostrar a relação entre as
entradas lógicas e a saída desejada. Ilustraremos, a seguir, exemplos com duas,
três e quatro entradas em conjunto com as tabelas-verdade correspondentes.
Um mapa de Karnaugh representa as linhas de uma determinada tabela-
verdade em forma de quadrículos adjacentes. Dessa forma, dois quadrículos
adjacentes vertical ou horizontalmente em um mapa de Karnaugh correspondem
a duas linhas da tabela-verdade, tal que apenas uma variável tenha seu valor
lógico alterado de um quadrículo para o outro.
Vamos tomar como exemplo a figura 1, que mostra a tabela-verdade da
função OR e seu respectivo mapa de Karnaugh.

Figura 1 Tabela-Verdade e mapa de Karnaugh da função Or.

Tomando como base a figura 1, podemos observar que existem dois quadros
adjacentes na horizontal e dois quadros adjacentes na vertical, contendo uns.
Sendo assim, a função OR representada por um mapa de Karnaugh torna-se
x = a’b + ab + ab’ + ab
O próximo passo seria eliminar na função as entradas complementares,
como por exemplo: a’b + ab, somente a variável b permanece da mesma forma.
Então podemos afirmar que esse exemplo pode ser demonstrado apenas por b.

Anotações

452 1º PeRÍodo • análise e desenvolvimento de sistemas • unitins


EQUIPE UNITINS
Organização de Conteúdos Acadêmicos
1ª edição Katia Gomes da Silva
Adaptado por Sibele Letícia Rodrigues Oliveira Biazotto
Coordenação Editorial Maria Lourdes F. G. Aires
Revisão Lingüístico-Textual Sibele Letícia Rodrigues Oliveira Biazotto
Gerente de Divisão de Material Impresso Katia Gomes da Silva
Revisão Digital Katia Gomes da Silva
Projeto Gráfico Irenides Teixeira
Katia Gomes da Silva
Ilustração Geuvar S. de Oliveira
Capas Igor Flávio Souza

Equipe EADCON
Coordenador Editorial William Marlos da Costa
Assistentes de Edição Ana Aparecida Teixeira da Cruz
Janaina Helena Nogueira Bartkiw
Lisiane Marcele dos Santos
Programação Visual e Diagramação Denise Pires Pierin
Kátia Cristina Oliveira dos Santos
Monica Ardjomand
Rodrigo Santos
Sandro Niemicz
William Marlos da Costa
Prezado acadêmico,
Bem-vindo à disciplina Fundamentos de Sistemas de Informação. Por meio
dela você conhecerá os conceitos associados aos sistemas de informação, tão
importantes para o desenvolvimento de uma percepção individual sobre a reali-
dade vivenciada pelas das organizações e pelas pessoas que a compõem.
Nossa proposta para esta disciplina está distribuída em sete aulas. Na
aula um, estudaremos os conceitos da Teoria Geral de Sistemas, compreende-
remos seus conceitos, suas classificações e a inter-relação entre os sistemas.

Apresentação
Na aula dois, veremos os conceitos, os componentes e a usabilidade dos
sistemas de informação. Na aula três, vamos estudar os tipos de sistemas,
entender sua importância nas organizações. A quarta aula está reservada
para você conhecer os conceitos de decisão e os sistemas de apoio à tomada
de decisão. Na quinta, vamos compreender como os sistemas de informação
auxiliam no processo de tomada de decisão. Nos aproximando do final do
caderno, na aula seis, conheceremos os conceitos e o funcionamento de
sistemas operacionais. Por fim, na última aula, trataremos dos sistemas geren-
ciais e suas características.
Assim a disciplina de Fundamentos de Sistemas de Informação é apresen-
tada a você.
Bons estudos!
Prof.ª Katia Gomes da Silva
Prof.ª Sibele Letícia Rodrigues Oliveira Biazotto
EMENTA
Teoria geral de sistemas. Conceitos e elementos dos Sistemas de
Informação. Tipologia de sistemas de informação. Tomada de decisão.
Sistemas de informação e o processo decisório. Informação operacional e
gerencial.
Plano de Ensino

OBJETIVOS
• Apresentar os conceitos relacionados sobre Fundamentos de
Sistemas de Informação.
• Apresentar os principais conceitos associados à informação,
sistemas e sistemas de informação que são necessários para o
entendimento dos relacionamentos dos três níveis organizacionais:
nível estratégico, nível tático e nível operacional.
• Auxiliar áreas de inovação, planejamento e gerenciamento
da informação e coordenação de recursos de informação nas
organizações.
• Descrever os conceitos de sistemas de informação envolvidos nos
processos de tomadas de decisão existentes em uma organização:
o planejamento estratégico, os planos e programas gerenciais e as
atividades operacionais associadas.

CONTEÚDO PROGRAMÁTICO
• Definição de informação, dados, sistemas
• Definição dos conceitos e tipologias de sistemas de informação
• Sistemas de apoio à decisão e o processo decisório
• Sistemas de suporte operacional e gerencial
BIBLIOGRAFIA BÁSICA
LAUDON, Kenneth. C.; LAUDON, Jane Price. Sistemas de Informação com
internet. 4. ed. Rio de Janeiro: LTC, 1999.
O’BRIEN, James A.; MOREIRA, Cid Knipel. Sistemas de informação: e as deci-
sões gerenciais na era da Internet. 2. ed. São Paulo: Saraiva, 2004.
STAIR, Ralph M.; REYNOLDS, George W. Princípios de sistemas de informação:
uma abordagem gerencial. 4. ed. Rio de Janeiro: LTC, 2002.

BIBLIOGRAFIA COMPLEMENTAR
AUDY, Jorge Luis Nicolas; ANDRADE, Gilberto Kleber de; CIDRAL, Alexandre.
Fundamentos de sistemas de informação. Porto Alegre: Bookman, 2005.
BOGHI, Cláudio; SHITSUKA, Ricardo. Sistemas de informação: um enfoque
dinâmico. 2. ed. São Paulo: Érica, 2005.
DAVENPORT, Thomas H. Ecologia da informação: por que só a tecnologia não
basta para o sucesso na era da informação. 6. ed. São Paulo: Futura, 2003.

unitins • análise e desenvolvimento de sistemas • 1º PeRÍodo 457


aula 1 • fundamentos de sistemas de infoRmação

Aula 1
Teoria geral de sistemas

Esperamos que, ao final desta aula, você seja capaz de:


• definir os conceitos e a classificação dos sistemas;
• analisar a inter-relação entre sistemas em diferentes espaços.

Nenhum conhecimento antecipado sobre sistemas de informação é exigido.


Porém, aproveitamos a oportunidade para solicitar que você leia atentamente o
conteúdo desta primeira aula, para o entendimento das características especí-
ficas dos vários tipos de sistemas de informação, para o alcance dos objetivos
anteriormente propostos.

Podemos classificar a Teoria Geral de Sistemas (TGS) como uma teoria que
tem como objetivo ter o ser humano e seu ambiente como partes de sistemas que
interagem. Esses sistemas são formados por um conjunto de elementos, inter-
dependentes, capazes de satisfazer uma necessidade ou objetivo específico,
aplicado a qualquer tipo de sistema.
Veremos, nesta aula, como surgiu a Teoria Geral de Sistemas e também seus
conceitos, propriedades, classificações e características.
Porém, antes de começarmos nossos estudos, vamos entender os conceitos
de teoria, geral e sistemas.
• Teoria: é a ação de pensar e compreender algum fenômeno, ou seja, é
a explicação de algum acontecimento.
• Geral: é o que pode ser aplicado a tudo ou a todos.
• Sistemas: é um conjunto de elementos, entre os quais há alguma relação,
de modo a formar um todo organizado.

unitins • análise e desenvolvimento de sistemas • 1º PeRÍodo 459


aula 1 • fundamentos de sistemas de infoRmação

Essas definições são importantes para que você compreenda o que vamos
expor a seguir.

1.1 Teoria geral de sistemas


A Teoria Geral de Sistemas foi formulada no final da década de 40 pelo
biólogo Karl Ludwig Von Bertalanffy. Bertalanffy propôs a criação de uma socie-
dade, a Sociedade Internacional para a Teoria Geral de Sistemas (ISGST –
International Society for General System Theory). Mais tarde, foi chamada de
Sociedade Internacional para a Ciência de Sistemas (ISSS – International Society
for System Science), para estudar uma nova proposta de ciência, a ciência de
sistemas (BERTALANFFY, 1975).
O propósito dessa sociedade interdisciplinar de cientistas era modelar
os sistemas, independentemente da área científica a que eles pertenciam.
Tinham interesse em juntar disciplinas para estabelecer leis que fossem apli-
cadas a todas elas.
Bertalanffy (1975, p. 61) diz que a TGS é um “conjunto de partes inte-
gradas, interdependentes, que formam um objeto complexo e único e tem obje-
tivo determinado”. Essa teoria parte dos seguintes pontos chaves:
• sistemas existem dentro de outros sistemas;
• sistemas podem ser classificados quanto à sua natureza, origem e tipo;
• as funções de um sistema dependem de sua estrutura.
A TGS não busca soluções práticas, mas sim teorias conceituais que visam
à idéia de que conjuntos de elementos interligados formam um todo que possui
propriedades e características próprias.
A Teoria Geral de Sistemas é uma teoria interdisciplinar, ou seja, propor-
ciona princípios e modelos gerais para todas as áreas envolvidas, de modo que
as descobertas efetuadas em cada uma possam ser utilizadas pelas demais.
O todo apresenta propriedades e características próprias. A TGS foi formu-
lada a partir de algumas propriedades descritas a seguir (AZAMBUJA, 2004).
• Objetivo: todos os sistemas possuem finalidade. Os seus elementos rela-
cionados definem um arranjo que sempre visa a um objetivo ou a um
propósito a ser alcançado.
• Inter-relacionamento e interdependência: elementos ou atributos não
relacionados e independentes, que não podem constituir um sistema.
• Transformação de processo: classificar, codificar e transformar entradas
em saídas, todos os sistemas têm de atingir o objetivo.
• Entradas e saídas: a entrada é tudo aquilo que se importa ou recebe
do meio ambiente, que podem ser: informação, energia e materiais. A

460 1º PeRÍodo • análise e desenvolvimento de sistemas • unitins


aula 1 • fundamentos de sistemas de infoRmação

saída é o que sistema exporta para o meio ambiente, ou seja, o resul-


tado final.
• Entropia: é a tendência, com o tempo, que os sistemas têm para o
desgaste, presente dentro de qualquer sistema.
• Homeostasia: é o equilíbrio dinâmico entre as partes do sistema. Uma
propriedade auto-reguladora que permite manter o estado de equilíbrio
de suas variáveis essenciais ou de seu meio ambiente. Por meio dela,
ocorre a retroalimentação do sistema.
• Hierarquia: sistemas são normalmente complexos compostos de subsis-
tema menores.
• Eqüifinalidade: sistemas abertos têm diversas formas de alcançar os
mesmos objetivos (divergência).
• Multifinalidade: de um determinado estado inicial, pode-se alcançar
diferentes, e mutuamente exclusivos, objetivos (convergência).
A TGS baseia-se em três princípios: o expansionismo, o pensamento sinté-
tico e o da teleologia. Stair e Reynolds (2002, p. 12) ensinam que o expan-
sionismo é “todo fenômeno [que] é parte de um fenômeno maior (abordagem
sistêmica – visão do todo)”. O pensamento sintético é “o fenômeno [que] é parte
de um fenômeno maior e é explicado em função”. E a teologia é “a causa [que]
é uma condição necessária, mas nem sempre suficiente para que exista o efeito
(a relação causa-efeito é probabilística)”.
A partir desses princípios, surgiu a Cibernética, com a intenção de ser uma
ciência interdisciplinar destinada a estabelecer relações entre as várias ciências,
preencher os espaços vazios não pesquisados por nenhuma ciência e permitir
que cada ciência utilizasse os conhecimentos desenvolvidos pelas demais ciên-
cias (BERTALANFFY, 1975).
O campo de estudo da cibernética são os sistemas. Para compreendermos
melhor a TGS, vamos entender o conceito de sistema, que é um conjunto de
dados inter-relacionados com um objetivo comum.

1.2 Concepções de sistemas


Vamos analisar o que um especialista diz sobre sistemas. Senge (1998,
p. 84) define sistema como
[...] um todo percebido, cujos elementos mantêm-se juntos
porque afetam continuamente uns aos outros ao longo do
tempo, e atuam para um propósito comum. A palavra sistema é
originária do verbo grego sunistánai, que significa “fazer ficar
junto”. Como sugere esta origem, a estrutura de um sistema
inclui a qualidade da percepção com a qual o observador o faz
permanecer unido.

unitins • análise e desenvolvimento de sistemas • 1º PeRÍodo 461


aula 1 • fundamentos de sistemas de infoRmação

Dizemos que todas as áreas do conhecimento e informação possuem


sistemas. E que os sistemas possuem características independentemente da área
onde se encontram.
Quando dizemos que os sistemas existem dentro de outros sistemas, podemos
exemplificar da seguinte forma: sistemas existem dentro de sistemas, porque as
células existem dentro de tecidos, os tecidos dentro de órgãos, os órgãos dentro
de organismos, os organismos dentro de colônias, as colônias dentro de cultura
nutrientes, e assim por diante (CHIAVENATO, 1993). As funções de um sistema
dependem de sua estrutura, de sua hierarquia. E a hierarquia de um sistema é
definida pela ordem e pela relação dinâmica dos elementos do sistema.
Stair e Reynolds (2002) classificam três níveis de hierarquia de sistemas,
indicados na figura um, que são:
• supersistema ou ecossistema: é o todo, em que o sistema é um subsis-
tema dele;
• sistema: é o que está sendo analisado ou avaliado;
• subsistema: são as partes que integram o sistema principal.

Figura 1 Níveis hierárquicos dos sistemas.

Observe na figura um que um elemento pertencente ao nível hierárquico


de supersistema é composto por componentes que se encontram em um nível
hierárquico inferior do nível hierárquico de sistemas. Esse mesmo componente

462 1º PeRÍodo • análise e desenvolvimento de sistemas • unitins


aula 1 • fundamentos de sistemas de infoRmação

(no nível hierárquico de sistemas) é composto por elementos de um nível imedia-


tamente inferior do nível hierárquico de subsistemas.
Assim a hierarquia dos sistemas e a quantidade de subsistemas dependem da
complexidade do sistema. A finalidade da hierarquia é dividir o sistema em dife-
rentes níveis de autoridade e responsabilidade, para que ele atinja seus objetivos.
Stair e Reynolds (2002) dizem que os sistemas podem ser classificados
quanto à sua: natureza (natural e construído), origem (concreto e abstrato) e tipo
(fechado e aberto). Vamos conhecer melhor a definição desses sistemas.

1.2.1 Sistemas naturais e construídos


Os sistemas naturais são aqueles que simplesmente existem, ou seja, de
origem não-humana. Já os sistemas construídos existem por iniciativa do homem,
ou de outro animal que tenha a capacidade de criação e inteligência.
Dentre os exemplos de sistemas naturais, podemos destacar o sistema solar,
um conjunto de planetas que giram em redor do sol, demonstrado na figura dois.
E dos exemplos de sistemas construídos, podemos citar a internet, como criar
páginas na internet para publicação de trabalhos e imagens.

Figura 2 Sistema solar.

1.2.2 Sistemas concretos e abstratos


Os sistemas concretos são compostos por equipamentos e existem fisica-
mente em espaço e tempo. Dentre os exemplos de sistemas concretos, desta-
camos o computador.
O computador é composto de elementos (subsistemas: CPU, memórias, peri-
féricos, etc.) interrelacionados que levam a um todo com uma funcionalidade
específica (capacidade de processamento), portanto está contemplado com o
conceito de sistemas, conforme figura três.

unitins • análise e desenvolvimento de sistemas • 1º PeRÍodo 463


aula 1 • fundamentos de sistemas de infoRmação

Figura 3 Modelo hierárquico do computador.

O computador, então, está no nível hierárquico de sistema, e seus compo-


nentes, no nível de subsistemas.
Já os sistemas abstratos não têm nenhuma definição de tempo e espaço e
são compostos por conceitos, idéias, filosofias.

1.2.3 Sistemas fechados e abertos


• Os sistemas fechados não apresentam influência com o meio ambiente
em que estão, porém não existem sistemas totalmente fechados, é apenas
uma termologia usada para aqueles sistemas que possuem pequeno ou
nenhum intercâmbio com o meio.
• Os sistemas abertos são aqueles que apresentam intercâmbio com o
meio ambiente e são dependentes de um ambiente que possa trocar
informações, energias e matérias, por meio de entrada (input), processa-
mento, retroação e saída (output). Veja a figura quatro a seguir.

Figura 4 Componentes de um sistema.

A entrada é o que o sistema importa ou recebe do meio ambiente e que serve


como insumo para poder operar, podendo ser: informação, energia e materiais.

464 1º PeRÍodo • análise e desenvolvimento de sistemas • unitins


aula 1 • fundamentos de sistemas de infoRmação

O processamento provoca mudanças, é responsável pela transformação das


entradas em saídas. O objetivo da retroação é o controle, que visa a refinar ou a
corrigir os dados de entrada, proporcionando a saída com padrões previamente
definidos, ou seja, a retroação é um mecanismo de comunicação entre a entrada
e a saída dos sistemas. Por fim, a saída é o resultado final, devendo ser coerente
com o objetivo do sistema.
Stair e Reynolds (2002) definem alguns exemplos de sistemas abertos,
conforme quadro a seguir.

Quadro Exemplos de sistemas.


SISTEMA ENTRADAS PROCESSAMENTO RETROAÇÃO SAÍDAS
• Armação • Solda Fabricar • Bicicletas
Fabricação de • Componentes • Pintura bicicletas acabadas
bicicletas • Trabalho • Montagem de melhor
• Suprimentos qualidade.
• Estudantes • Ensino Proporcionar • Estudantes
• Professores • Pesquisa a aqui- cultos
• Administradores • Serviço sição de • Pesquisa
conhecimento. significativa
Universidade • Livros
• Equipamentos • Serviços à
Comunidade,
ao Estado e à
Nação
• Médicos • Diagnóstico Prestar serviço • Pacientes
Serviço de • Pacientes • Cirurgias de saúde saudáveis
saúde • Enfermeiras • Medicamentos de melhor • serviços à
• Equipamentos • Testes qualidade. comunidade
Fonte: adaptado de Stair e Reynolds (2002).

1.3 Sistemas dependentes


Os sistemas dependentes são aqueles em que a saída de um sistema pode
ser a entrada de outro, o que é conhecido como integração.
Podemos exemplificar os sistemas dependentes na figura cinco a seguir.

Figura 5 Exemplo de sistema dependente

unitins • análise e desenvolvimento de sistemas • 1º PeRÍodo 465


aula 1 • fundamentos de sistemas de infoRmação

Nessa figura, podemos usar o exemplo a fabricação de uma bicicleta, de


Stair e Reynolds (2002). Após a conclusão da fabricação da bicicleta (saída),
temos o processo de vendê-la. Assim, recebendo do outro sistema a bicicleta
acabada, o processamento é a sua venda, que tem como entrada preços,
clientes, vendedores, e como saída, a bicicleta vendida.

Saiba mais

Concluímos esta aula observando que a Teoria Geral de Sistemas diz que
todas as áreas do conhecimento possuem sistemas. E que sistemas são elementos
interligados que levam a um objetivo específico. Além disso, esses sistemas
possuem hierarquias, propriedades e características próprias, e podem ser clas-
sificados por tipo, origem e natureza.

Nesta aula, você aprendeu o conceito de teoria geral de sistemas, que é


uma teoria interdisciplinar, ou seja, proporciona princípios e modelos gerais
para todas as áreas envolvidas, de modo que as descobertas efetuadas em cada
uma pudessem ser utilizadas pelas demais.
Também aprendeu que um sistema é um conjunto de elementos inter-rela-
cionados com um objetivo comum e podem ser abertos, fechados, abstratos,
concretos, naturais e construídos. Entendemos que eles são como um conjunto
de partes, ou de subsistemas, que se encontra em contínua interação. Isso quer
dizer que as partes são interdependentes entre si.
Porém o conceito de sistema, além do inter-relacionamento, da interde-
pendência, da homeostasia (equilíbrio dinâmico entre as partes), da entropia
(tendência para o desgaste), da hierarquia (sistemas compostos por sistemas
menores), da eqüifinalidade (divergência) e da multifinalidade (convergência),
ainda necessita de mais uma característica fundamental, o objetivo, a finali-
dade ou o propósito específico. E, por fim, você observou que os sistemas estão
sempre influenciando e sendo influenciados pelo ambiente.

1. Identifique dois sistemas, com seus objetivos, suas entradas, seus mecanismos
de processamento, sua retroação e suas saídas.

466 1º PeRÍodo • análise e desenvolvimento de sistemas • unitins


aula 1 • fundamentos de sistemas de infoRmação

2. Um computador é um sistema concreto ou abstrato? Justifique.

3. O Setor de Tecnologia da Informação de uma empresa é um:


a) sistema da empresa;
b) supersistema do sistema empresa;
c) subsistema do sistema empresa;
d) saída do sistema empresa.

4. Os sistemas têm os seguintes elementos: entrada, processamento, retroação e


saída. Qual das afirmativas a seguir explica corretamente um desses elementos?
a) A entrada de um sistema é tudo o que ele importa ou recebe de seu
mundo exterior.
b) O processamento é o resultado final da operação de um sistema.
c) A retroação é o conjunto de elementos que serão utilizados pelo sistema
para produzir as saídas.
d) A saída é um mecanismo segundo o qual o resultado de um sistema
volta à entrada.

Na atividade um, você deve seguir os exemplos dados por Stair e Reynolds
(2002), como o sistema de fabricação de bicicletas e o de uma universidade.
Mas você deve listar outros, como sistema educacional tem como entradas os
alunos, conhecimentos, informações, métodos, suprimentos, etc. e tem como
saída alunos com conhecimento, competências, habilidades, valores.
Na atividade dois, se respondeu que o computador é um sistema concreto,
você compreendeu o conceito. Os sistemas concretos são compostos por equi-
pamentos, ou seja, existem fisicamente em espaço e tempo. Já os sistemas
abstratos não têm nenhuma definição de tempo e espaço, pois são compostos
por conceitos, idéias e/ou filosofias.
Na atividade três, a resposta correta é a letra (c), pois um setor de uma empresa
são as partes que integram o sistema principal. A letra (a) está incorreta, pois o
sistema é o que é analisado ou avaliado e não parte de um sistema (subsistema). Da
mesma forma a letra (b) está incorreta porque o supersistema é o todo. E a letra (d)
também é incorreta, pois a saída é o resultado final da operação de um sistema.
Na atividade quatro, a reposta correta é a letra (a), pois a entrada é o que
o sistema importa ou recebe do meio ambiente e que serve como insumo para
poder operar. A opção (b) está incorreta porque o processamento é o conjunto de
elementos que são utilizados pelo sistema para produzir as saídas, e não o resul-
tado final da operação de um sistema. Da mesma forma a opção (c) está incorreta

unitins • análise e desenvolvimento de sistemas • 1º PeRÍodo 467


aula 1 • fundamentos de sistemas de infoRmação

porque a retroação é um mecanismo segundo o qual o resultado de um sistema


volta à entrada, e não o conjunto de elementos que serão utilizados pelo sistema
para produzir as saídas, conforme afirma a assertiva. Por fim, a opção (d) também
está equivocada, pois a saída é o resultado final da operação de um sistema, e
não um mecanismo segundo o qual o resultado de um sistema volta à entrada.
Por meio da resolução das atividades um e quatro, você alcançou o objetivo de
definir os conceitos e a classificação dos sistemas. Já com a resolução das atividades
dois e três, o de analisar a inter-relação entre sistemas em diferentes espaços.

AZAMBUJA, Ricardo Alencar de. Teoria Geral de Sistemas. Departamento de


Sistemas e Computação. Blumenau: Universidade Regional de Blumenau, 2004.
Disponível em: <http://www.inf.furb.br/~zamba/docs/tgs_v2004.pdf>. Acesso
em: 2 ago. 2008.
BERTALANFFY, Ludwig Von. Teoria geral dos sistemas. Petrópolis: Vozes, 1975.
CHIAVENATO, I. Introdução a Teoria Geral da Administração. São Paulo: Makron
Books, 1993.
SENGE, Peter M. A quinta disciplina: arte e prática da organização de aprendi-
zagem. Barcelona: Best Seller, 1998.
STAIR, Ralph M.; REYNOLDS, George W. Princípios de sistemas de informação:
uma abordagem gerencial. 4. ed. Rio de Janeiro: LTC, 2002.

Depois de termos visto o que é a Teoria Geral de Sistemas, estudaremos os


conceitos de sistemas de informação. Vamos também identificar seus compo-
nentes, como dados, informação e sistemas e suas usabilidades.

Anotações

468 1º PeRÍodo • análise e desenvolvimento de sistemas • unitins


aula 2 • fundamentos de sistemas de infoRmação

Aula 2
Conceitos e componentes dos
sistemas de informação

Esperamos que, ao final desta aula, você seja capaz de:


• analisar o conceito dos sistemas de informação;
• identificar seus componentes e sua usabilidade.

Na aula anterior, você estudou conceito de sistemas. Lembre-se de que


sistema é um conjunto de elementos inter-relacionados com um objetivo
comum. Também é importante observar que há hierarquia de sistemas (super-
sistema ou ecossistema, sistema e subsistema) e que podemos classificá-los
quanto à sua natureza (natural/construído), origem (concreto/abstrato) e
tipo (fechado e aberto). Caso ainda haja dúvidas, recorra ao seu material
antes de prosseguir!

Um grande desafio dos sistemas de informação (SI) é assegurar quali-


dade e agilidade da informação. A informação tem a capacidade de
influenciar um objetivo e/ou direção e é a base de toda e qualquer tomada
de decisão.
Antes de iniciarmos nosso estudo sobre sistemas de informação, vamos
apresentar alguns conceitos úteis para o desenvolvimento desta aula.

2.1 A importância dos dados, da informação e dos sistemas


Constantemente o termo informação é confundido com o termo dado.
Porém dado é qualquer elemento identificado em sua forma primária e que
por si só não conduz à compreensão de um determinado fato ou situação.

unitins • análise e desenvolvimento de sistemas • 1º PeRÍodo 469


aula 2 • fundamentos de sistemas de infoRmação

A transformação de dado em informação é um processo. Por exemplo, um


banco de dados é um meio de se armazenar conjuntos de dados para serem
processados e que, após executados, geram uma informação útil.
Assim informação é um conjunto de dados com algum significado, ou
seja, que reduz a incerteza ou que aumenta o conhecimento a respeito de
algo. A informação é uma mensagem com significado útil em um deter-
minado contexto, disponível para o uso e que proporciona orientação às
tomadas de decisão, a fim de reduzir a margem de incerteza a respeito de
nossas decisões.
Stair e Reynolds (2002) dizem que a informação é um conjunto de fatos
organizados de tal forma que adquirem valor adicional, além do valor do fato
em si. Isso significa que, na maioria das vezes, é mais importante a forma
como uma informação é utilizada, o meio em que é aplicada, do que o valor
dado ao seu conteúdo. Assim a informação é o dado trabalhado que permite
tomar decisões.
Porém, para o processo de transformação de dado em informação, é
necessário o conhecimento. O conhecimento são regras e procedimentos
usados para selecionar, organizar e manipular os dados, para torná-los úteis
e para atingir um resultado específico (STAIR; REYNOLDS, 2002). Assim a
informação pode ser considerada um dado tornado mais útil por meio da
aplicação do conhecimento.
Vimos, na aula anterior, que os sistemas são elementos interligados com a
função de produzir ou obter determinados objetivos ou resultados específicos.
Agora que já entendemos os conceitos de informação e sistemas, vamos entender
o que são sistemas de informação.

2.2 Definição de sistemas de informação


Laudon e Laudon (1999, p. 9) definem sistemas de informação como
[...] um conjunto de componentes inter-relacionados que traba-
lham juntos na coleta, recuperação, processamento armazena-
mento e distribuição de informações com a finalidade de faci-
litar o planejamento, o controle, a coordenação, a análise e o
processo decisório em organizações.

Os sistemas de informação podem ser conceituados como sistemas que


têm como objetivo a obtenção de informações que satisfaçam as necessi-
dades de organizações. Entenda necessidades como planejamento, controle
e tomadas de decisão, e entenda organizações como empresas, governos,
escolas, etc.
Stair e Reynolds (2002, p. 4) dizem que os SI são “uma série de elementos
ou componentes inter-relacionados que coletam (entrada), manipulam e arma-

470 1º PeRÍodo • análise e desenvolvimento de sistemas • unitins


aula 2 • fundamentos de sistemas de infoRmação

zenam (processo), disseminam (saída) os dados e informações e fornecem um


mecanismo de feedback”. Observe a figura um a seguir.

Figura 1 Atividades de um sistema de informação.

Vamos conhecer um pouco mais sobre entrada, processamento, saída e


feedback.
• Entrada: alimenta o sistema, captando e juntado dados primários.
• Processamento: é a interação que existe entre as entradas, causando a
conversão ou transformações dos dados em saídas úteis.
• Saída: exporta o resultado do processamento, ou seja, informações úteis.
• Feedback: é uma forma usada para refinar ou ajustar se algo estiver
errado nos dados de entrada.
Os dados de entrada podem ser de inúmeros tipos, são dados brutos que,
isolados, não geram informações compreensíveis. A qualidade da informação
é mais importante do que sua quantidade. Por isso, para que haja a geração
de informações compreensíveis, é necessário verificar se não existem dados em
excesso, em escassez ou dados de pouca utilidade.
A informação é o centro das atividades de qualquer organização, é produto de
prestação de serviço, devendo, portanto, ser eficiente, precisa, significativa e útil.
O quadro a seguir demonstra alguns exemplos de sistemas de informação
(MOREIRA, [s.d.]).

Quadro Exemplos de sistemas de informação.


FUNÇÕES SISTEMAS DE
COMPONENTES DADOS
GERENCIAIS INFORMAÇÃO
Administração Empregados, cargos, Folha de pagamento,
Pessoas
de RH qualificação, etc. de salários, etc.
Administração Contas a pagar, contas Contabilidade, custos,
Dinheiro Financeira a receber, orçamento, orçamento, contas a
custos, etc. pagar, etc.

unitins • análise e desenvolvimento de sistemas • 1º PeRÍodo 471


aula 2 • fundamentos de sistemas de infoRmação

FUNÇÕES SISTEMAS DE
COMPONENTES DADOS
GERENCIAIS INFORMAÇÃO
Administração Itens, fornecedores, Controle de estoques,
Materiais de Materiais estoques, ordens de controle de compras, etc.
compra, etc.
Administração Programas, roteiros de Controle de sistemas,
de Sistemas operação, etc. controle de operação,
Sistemas
controle de manutenção,
etc.
Administração Pesquisas, demandas, Mala-direta, reclama-
Mercado de Marketing concorrentes, etc. ções, pesquisas, previ-
sões, etc.
Administração Clientes, vendas, etc. Faturamento, estatísticas,
Clientes
de Vendas controle de metas, etc.
Fonte: adaptado de Moreira ([s.d.]).

2.3 Componentes de sistemas de informação


Sistemas de informação é uma parte importante de uma organização e é
um produto composto por três elementos: organizações, pessoas e tecnologias
(LAUDON; LAUDON, 1999). São componentes que trabalham juntos desenvol-
vendo soluções para problemas por meio de sistemas de informação.
Vamos analisar cada um desses itens.

2.3.1 Organizações
As organizações são estruturadas e hierárquicas. Modelam os SI conforme
suas necessidades para resolver problemas que surgem por fatores internos ou
externos. Essas necessidades podem ser transacionais, gerenciais, externas e
legais da organização.

2.3.2 Pessoas
Em sistemas baseados em computador, as pessoas são o elemento mais
importante, pois são elas que gerenciam, programam, executam, ou seja, são
os administradores dos SI.

2.3.3 Tecnologias
A tecnologia é o meio usado para transformar dados em informações úteis.
Assim existem sistemas de informação manuais e computadorizados. Os sistemas
de informação manuais utilizam, por exemplo, caneta e papel, porém é um
sistema sujeito a erros, e isso o torna ineficiente.
Os sistemas de informação se iniciam como sistemas manuais e se tornam
computadorizados. Os sistemas de informação computadorizados são compostos

472 1º PeRÍodo • análise e desenvolvimento de sistemas • unitins


aula 2 • fundamentos de sistemas de infoRmação

por hardware, software, banco de dados, telecomunicações, pessoas e procedi-


mentos (STAIR; REYNOLDS, 2002). Observe a figura dois a seguir.

Figura 2 Componentes de sistemas de informação computadorizados.

Nessa figura, são exibidos os componentes dos sistemas de informação


computadorizados, definidos em seguida.
• Hardware: é o equipamento físico usado para executar as atividades
de entrada, processamento e saída em um sistema de informação. Os
dispositivos de entrada podem ser teclado, mouse, câmera, microfone
e vários outros. Os dispositivos de processamento envolvem unidade
central de processamento, memória e armazenagem. Já os dispositivos
de saída podem ser monitor e impressoras.
• Software: é um conjunto de instruções que faz o computador funcionar.
Consiste em programas que permitem ao computador processar dados
e executar tarefas exigidas pelos sistemas de informação.
• Banco de dados: é um sistema de armazenamento e organização de
dados que são utilizados no processamento.
• Telecomunicações: permite a ligação de diferentes hardwares. Usada
para conectar e transferir dados de um ponto a outro por meio de redes.
Uma rede permite a ligação de dois ou mais hardwares independente-
mente dos lugares onde estejam.

unitins • análise e desenvolvimento de sistemas • 1º PeRÍodo 473


aula 2 • fundamentos de sistemas de infoRmação

• Pessoas: são todos os envolvidos com o sistema, ou seja, administra-


dores, usuários, desenvolvedores, etc.
• Procedimentos: são as instruções (estratégias, objetivos, métodos, regras)
para a operação do sistema.
Os sistemas de informação devem ser mais do que apenas executar tarefas
bem definidas, mas também fornecer recursos às pessoas para que executem
suas atividades de forma eficaz e eficiente.
Alguns benefícios que as empresas buscam obter por meio dos sistemas de
informação são:
• maior segurança
• vantagens competitivas
• menos erros
• maior produtividade
• redução de custos
Ao finalizarmos esta aula, devemos observar que, para termos um sistema
de informação, necessitamos de equipamentos, pessoas, meios de comunicação,
normas, processos, etc., necessários para se obter informações, desde o surgi-
mento dos dados até a transformação em informação. Assim conseguimos satis-
fazer as necessidades de quem delas necessita.

Nesta aula, abordamos, primeiramente, a importância dos dados, da infor-


mação e dos sistemas: dado – qualquer elemento identificado em sua forma
primária e que por si só não conduz à compreensão de um determinado fato
ou situação; informação – conjunto de dados com algum significado, ou seja,
algo que reduz a incerteza ou que aumenta o conhecimento a respeito de algo;
e sistemas – elementos interligados com a função de produzir ou obter determi-
nados objetivos ou resultados específicos.
Depois, definimos sistemas de informação como sistemas que têm por obje-
tivo a obtenção de informações que satisfaçam as necessidades das organiza-
ções. Ou, nas palavras de Stair e Reynolds (2002), são “uma série de elementos
ou componentes inter-relacionados que coletam (entrada), manipulam e arma-
zenam (processo), disseminam (saída) os dados e informações e fornecem um
mecanismo de feedback”.
Em seguida, aprendemos que os sistemas de informação são compostos por
três elementos: organizações (estruturadas e hierárquicas), pessoas (administra-
dores dos SI) e tecnologias (meio usado para transformar dados em informações
úteis – manual e computadorizadas).

474 1º PeRÍodo • análise e desenvolvimento de sistemas • unitins


aula 2 • fundamentos de sistemas de infoRmação

As tecnologias computadorizadas mereceram destaque ao definirmos seus


componentes, que são: hardware: equipamento físico usado para executar as
atividades de entrada, processamento e saída em um sistema de informação;
software: conjunto de instruções que faz o computador funcionar; banco de
dados: sistema de armazenamento e organização de dados que são utilizados
no processamento; telecomunicações: o que permite a ligação de diferentes
hardwares; pessoas: todos os envolvidos com o sistema; e procedimentos: instru-
ções para a operação do sistema.

1. Defina o que é sistemas de informação.

2. Qual dos elementos a seguir corresponde a uma informação e não a um


dado?
a) roteiros de operações
b) RG de um cliente
c) contra-cheques dos funcionários
d) contas a pagar

3. Quais são os componentes de sistemas de informação computadorizados?


Defina-os.

4. Relacione os itens da segunda coluna com os seguintes componentes de


sistemas de informação.
a) Impressora ( ) Banco de dados
b) Gerente de projeto ( ) Hardware
c) Sistema gerencial ( ) Pessoas
d) Manual do usuário ( ) Procedimentos
e) Contas a pagar ( ) Software

Na atividade um, a resposta deve ser com suas palavras, com a forma
como você compreendeu o conceito, mas deve também ter um parâmetro de
definição. Lembre-se de que sistemas de informação são sistemas que têm
como objetivo a obtenção de informações que satisfaçam as necessidades das
organizações. Você também pode acessar o sítio: <http://pt.wikipedia.org/
wiki/Sistema_de_informa%C3%A7%C3%A3o> e construir seu conhecimento
sobre esse assunto.

unitins • análise e desenvolvimento de sistemas • 1º PeRÍodo 475


aula 2 • fundamentos de sistemas de infoRmação

Na atividade dois, a resposta correta é a letra (c), pois o contra-cheque


reúne dados do funcionário, como dados pessoais, dados financeiros, cálculos
entre outros. Já as letras (a), (b) e (d), estão incorretas, pois são dados que
processados geram informações.
Na atividade três, é correto afirmar que os componentes de sistemas de
informação computadorizados são os hardwares, softwares, banco de dados,
telecomunicações, pessoas e procedimentos.
Na atividade quatro, a seqüência correta é (e), (a), (b), (d) e (c). Lembramos
que o banco de dados é um conjunto de dados organizados; hardware são os
equipamentos usados para executar uma tarefa; as pessoas são quem geren-
ciam, executam, programam e mantêm os sistemas de informação; os procedi-
mentos são os métodos e regras usados para operar os sistemas baseados em
computador; e o software consiste em programas que permitem ao computador
processar dados e executar tarefas.
Se você resolveu as atividades um e três a contento, atingiu o objetivo de
analisar o conceito dos sistemas de informação. Já o objetivo de identificar seus
componentes e sua usabilidade pode ser observado nas atividades dois e quatro.

LAUDON, Kenneth C.; LAUDON, Jane Price. Sistemas de Informação com


internet. 4. ed. Rio de Janeiro: LTC, 1999.
MOREIRA, Jussara. Sistemas de informação: conceitos básicos. Petrolina:
FACAPE, [s.d.].
STAIR, Ralph M.; REYNOLDS, George W. Princípios de sistemas de informação:
uma abordagem gerencial. 4. ed. Rio de Janeiro: LTC, 2002.

Os sistemas de informação vão além do conhecimento sobre computadores.


Consiste no conhecimento de como as informações produzidas pelos sistemas
computacionais são usadas pelas organizações para aumentar lucros, diminuir
custos, melhorar a produtividade e melhorar a satisfação do cliente. Esse é o
assunto da nossa próxima aula.

Anotações

476 1º PeRÍodo • análise e desenvolvimento de sistemas • unitins


aula 3 • fundamentos de sistemas de infoRmação

Aula 3
Tipologias de sistemas de
informação

Esperamos que, ao final desta aula, você seja capaz de:


• entender o que são os sistemas organizacionais;
• compreender os tipos de sistemas.

Os estudos relativos a esta disciplina são cumulativos. Devido a isso, você


deve sempre ter os conceitos vistos anteriormente como base para a construção
de novos conhecimentos. Para a compreensão desta aula, você deve saber o
que é um sistema, a diferença entre dados, informação e sistemas e o conceito
de sistemas de informação e seus componentes. Tudo isso temos ao alcance das
mãos nas duas aulas anteriores. Não deixe que dúvidas dificultem a construção
do seu conhecimento e, se necessário, recorra ao material!

Os computadores, no início, tinham apenas o objetivo de executar aplica-


ções de negócios, ou seja, sistemas simples para reduzir custos.
Laudon e Laudon (1999) asseveram que as organizações são vistas como
coleções de processos empresariais inter-relacionados que organizam, coor-
denam e focalizam o trabalho necessário para produzir um produto e/ou
serviço de qualidade.
Os sistemas de informação aplicados à organização servem áreas funcio-
nais específicas das organizações e diversos tipos de sistemas são desenvolvidos
para resolver diferentes tipos de problemas em diferentes níveis das organiza-
ções (LAUDON; LAUDON, 1999).
Nesta aula, vamos discorrer sobre os sistemas organizacionais e os tipos de
sistemas que dão suporte às organizações.

unitins • análise e desenvolvimento de sistemas • 1º PeRÍodo 477


aula 3 • fundamentos de sistemas de infoRmação

3.1 Sistemas organizacionais


O uso dos sistemas organizacionais tem garantido, por diversas vezes, a
sobrevivência das organizações no ambiente competitivo. Isso é possível porque
ele lida com problemas organizacionais internos e externos e resolve problemas
relacionados à produção, ao planejamento, ao desenvolvimento, ao controle e a
operações gerenciais.
O’Brien (2004) define uma organização como um sistema organizacional
em que os recursos econômicos são transformados por processos organizacio-
nais em bens e serviços. Uma organização se baseia em processos de negócios
interdependentes que trabalham para gerar produtos e ou serviços.
A importância dos sistemas de informação é agilizar os processamentos
operacionais, gerenciais e estratégicos nas organizações. De acordo com a SBC
(1998, [s.p.]), os sistemas de informação podem ser definidos como
[...] uma combinação de recursos humanos e computacionais que
inter-relacionam a coleta, o armazenamento, a recuperação, a
distribuição e o uso de dados com o objetivo de eficiência gerencial
(planejamento, controle, comunicação e tomada de decisão) nas
organizações. Adicionalmente, os sistemas de informação podem
também ajudar os gerentes e os usuários a analisar problemas,
criar novos produtos e serviços e visualizar questões complexas.

Assim os sistemas de informação se envolvem em atividades de aquisição,


desenvolvimento e gerenciamento de produtos e/ou serviços, além do desenvol-
vimento de sistemas de informação para uso em processos organizacionais.
A informação, assim como os outros recursos de uma organização, deve ser
gerenciada.

3.1.1 Gestão da informação


Os sistemas organizacionais são fundamentados na informação, que é o
principal elemento no gerenciamento dos dados. O principal desafio da infor-
mação é definir a informação correta, em tempo hábil e no local adequado.
Para tanto, é necessário um controle por parte da organização na procura e
manutenção da informação.
Segundo Jakobiak (1995), a gestão da informação pode ser dividida em
quatro níveis: informação crítica, informação mínima, informação potencial e
informação excessiva. Vamos detalhar cada um desses níveis.
• Informação crítica: essencial para a organização, pois permite a tomada
de boas decisões.
• Informação mínima: essencial para uma boa gestão da organização
porque permite a execução de boas ações.
• Informação potencial: essencial para obtenção de vantagens competi-
tivas por utilizar os sistemas de informação.

478 1º PeRÍodo • análise e desenvolvimento de sistemas • unitins


aula 3 • fundamentos de sistemas de infoRmação

• Informação excessiva: informação inútil para o desenvolvimento da


organização.
A informação nas organizações é um recurso, talvez o mais importante, de
obtenção de vantagens competitivas, por isso uma arma estratégica de sobrevi-
vência da empresa.
A gestão da informação define-se como a aplicação de princípios adminis-
trativos para aquisição, organização, controle, transmissão e uso da informação
para o funcionamento das organizações (TARAPANOFF, [s.d.]). A gestão da
informação preocupa-se com a qualidade, com o uso e a segurança da infor-
mação no desempenho organizacional.
Em uma organização, existem diferentes interesses, especialidades, carac-
terísticas específicas e, por isso, também existem diversos tipos de sistemas de
informação. Por sua vez, esse sistema normalmente é composto por diversos
subsistemas. Vamos conhecer agora as tipologias.

3.2 Tipologias de sistemas de informação


Cada um dos vários tipos de sistemas de informação utiliza critérios e combi-
nações diferentes, de acordo com o objetivo que pretende alcançar. O papel
dos variados tipos existentes hoje é apoiar a tomada de decisões e as atividades
nos diferentes níveis e funções organizacionais.
Podemos classificar as quatro principais áreas de atuação dos sistemas de
informação conforme a figura um.

Figura 1 Áreas de atuação dos sistemas de informação.

Fonte: adaptado de O’Brien (2004)

unitins • análise e desenvolvimento de sistemas • 1º PeRÍodo 479


aula 3 • fundamentos de sistemas de infoRmação

Segundo Laudon e Laudon (1999), os principais tipos de sistemas são: Sistemas


de Processamento de Transações (SPT); Sistemas de Informação Gerencial (SIG);
Sistemas de Apoio à Decisão (SAD); Sistemas de Apoio ao Executivo (SAE);
Sistemas de Automação de Escritório (SAE); e Sistemas de Trabalhadores do
Conhecimento (STC).
É importante que você conheça cada um deles.

3.2.1 Sistemas de Processamento de Transação – SPT


São sistemas do nível do conhecimento, voltados para o nível operacional
da organização, responsáveis pelo processamento, execução, manutenção e
registro das transações organizacionais.

SPT: controle de estoque, vendas, contas a receber, folhas de pagamento, etc.


Exemplos de SPT:

Segundo Laudon e Laudon (2004), o principal objetivo de um SPT é responder


às perguntas de rotinas e acompanhar o fluxo de transações. Exemplos:
• quantos equipamentos há no estoque?
• qual o valor total da folha de pagamento do mês de março?
Um SPT precisa ser atualizado continuamente para fornecer informações
corretas e suas principais características são:
• entrada e alimentação de dados;
• processamento e armazenamento de dados;
• geração de documentos e relatórios.
Visualize essas características na figura dois a seguir.

Figura 2 Modelo de sistema de processamento e transação.

Fonte: Laudon e Laudon (1999, p. 29).

480 1º PeRÍodo • análise e desenvolvimento de sistemas • unitins


aula 3 • fundamentos de sistemas de infoRmação

Continuaremos os estudos com os Sistemas de Informação Gerencial, nosso


próximo item.

3.2.2 Sistemas de Informação Gerencial – SIG


Esses sistemas são do nível gerencial inicialmente desenvolvidos para a
geração de relatórios. De acordo com Laudon e Laudon (1999), o SIG é o
processo de transformação de dados em informações que são utilizadas na
estrutura decisória da empresa. Isso proporciona a sustentação administrativa
que otimiza os objetivos esperados.
Geralmente, dependem dos STP para aquisição de informações. Como ilus-
trado na figura três.

Figura 3 Utilização dos dados gerados pelo STP.

Fonte: adaptado de Laudon e Laudon (1999).

Assim, podemos observar que os SIG geram relatórios padronizados, histó-


ricos e apóiam o planejamento de controle e decisão sobre as operações básicas
de uma empresa.

3.2.3 Sistemas de Apoio à Decisão – SAD


Também é um sistema que atende o nível gerencial, dando apoio e assis-
tência em todos os aspectos da tomada de decisões que são rapidamente ou
facilmente modificados. Em outras palavras, auxiliam os gerentes a tomar deci-
sões que não são especificadas com antecedência.

3.2.4 Sistemas de Apoio ao Executivo – SAE


São sistemas que dão suporte à função de planejamento estratégico, ou
seja, do nível estratégico, de uma empresa. São projetados para os execu-
tivos (nível gerencial) da organização e destinados a satisfazer suas necessi-
dades de informação. Possuem aplicações de fácil comunicação e interface e
servem para tomar decisões não rotineiras que exigem bom senso avaliação
e percepção.

unitins • análise e desenvolvimento de sistemas • 1º PeRÍodo 481


aula 3 • fundamentos de sistemas de infoRmação

3.2.5 Sistemas de Automação de Escritório – SAE


Esses sistemas dão suporte ao técnico especialista na organização da empresa
quanto à coordenação e às atividades de comunicação de uma empresa. Seu
objetivo é ajudar a organização e controlar o fluxo de documentos. Os sistemas
de automação de escritório são sistemas projetados para aumentar a produtivi-
dade dos usuários.

3.2.6 Sistemas de Trabalhadores do Conhecimento – STC


Também são sistemas do nível do conhecimento. Laudon e Laudon (2004)
consideram que esse tipo tem função de dar suporte aos trabalhadores do conhe-
cimento em uma organização. Em outras palavras, sua intenção é de ajudar a
empresa a integrar novos conhecimentos no negócio, voltado para a pesquisa
com a intenção de criar novos conhecimentos e informação.

3.3 Relação entre os sistemas


Os vários tipos de sistemas da organização possuem interdependências. Por
exemplo, os STP são os maiores fornecedores de informações que são requisi-
tadas por outros sistemas que, por sua vez, produzem informações para outros
sistemas. Isso é demonstrado na figura quatro.

Figura 4 Modelo de relação entre os sistemas.

Fonte: adaptado de Laudon e Laudon (1999).

482 1º PeRÍodo • análise e desenvolvimento de sistemas • unitins


aula 3 • fundamentos de sistemas de infoRmação

Veja a seguir alguns exemplos de sistemas de informação organizacional.


• CRM: Customer Relationship Management, ou sistema de gerenciamento
de relacionamento com o cliente. É uma ferramenta destinada a entender
e a influenciar o comportamento dos clientes, ou seja, ajuda a empresa
a criar e a manter um bom relacionamento com seus clientes, armaze-
nando suas informações.
• ERP: Enterprise Resource Planning, ou sistemas integrados de gestão
empresarial. É uma ferramenta para integrar os diversos setores de uma
empresa, o que possibilita o armazenamento de todas as informações
de negócios.
Ao concluirmos esta aula, é importante frisar que os sistemas organizacio-
nais são fundamentais na sobrevivência das empresas. O mercado competitivo
exige atitudes na produção, no planejamento, no desenvolvimento, no controle
e nas operações gerencias, e o uso dos sistemas de informação organizacionais
proporciona isso.

O uso generalizado de sistemas de informação nas organizações aumenta a


necessidade de profissionais com conhecimento do desenvolvimento e gerencia-
mento de sistemas. Profissionais com esses conhecimentos apóiam a inovação,
o planejamento e o gerenciamento da infra-estrutura de informação e coorde-
nação dos recursos de informação nas organizações. Nesta aula, você estudou
que os sistemas organizacionais englobam a gestão da informação, que pode
ser classificada em crítica (tomada de boas decisões), mínima (execução de
boas ações), potencial (obtenção de vantagens competitivas) e excessiva (infor-
mação inútil). Depois expusemos as tipologias de sistemas de informação, que
são SPT (sistemas do nível do conhecimento, voltados para o nível operacional
da organização), SIG (nível gerencial, utilizados no processo de transformação
de dados em informações), SAD (também em nível gerencial, para auxiliar na
tomada de decisões não previstas), SAE (nível estratégico, projetados para satis-
fazer as necessidades de informação dos executivos), SAE (suporte técnico espe-
cialista, projetados para aumentar a produtividade dos usuários), e STC (nível do
conhecimento, intencionados a ajudar na integração de novos conhecimentos ao
negócio). Finalizando, você pôde observar que existe relação entre os sistemas,
pois há interdependência entre eles, principalmente de informações.

1. Qual a importância da informação em sistemas de informação


organizacionais?

unitins • análise e desenvolvimento de sistemas • 1º PeRÍodo 483


aula 3 • fundamentos de sistemas de infoRmação

2. Relacione corretamente a segunda coluna de acordo com a primeira em


relação aos conceitos dos sistemas de informação.

a) SIG ( ) Sistemas do nível do conhecimento


b) SAE ( ) Sistemas do nível estratégico
c) STC ( ) Sistemas do nível gerencial

3. Explique com suas palavras o que é um Sistema de Processamento de


Transação – SPT. Exemplifique.

4. Sobre os níveis da gestão da informação é correto afirmar:


a) informação excessiva permite a execução de boas ações na
organização.
b) informação mínima é inútil para o desenvolvimento da organização.
c) por meio da informação potencial é que se obtêm vantagens competitivas.
d) informação crítica permite a tomada de boas decisões.

Com a resolução das atividades dadas, você alcançou os dois objetivos


propostos: entender o que são os sistemas organizacionais e compreender os tipos
de sistemas. Compare agora suas respostas aos comentários e veja se acertou!
Na atividade um, dizemos que a informação nas organizações é o recurso
mais importante, pois é por meio dela que se obtém vantagens competitivas.
Você aprendeu que é necessário organizar, controlar, transmitir a informação,
da melhor forma, para garantir o funcionamento das organizações.
Na atividade dois, a seqüência correta é (c), (b), (a). Dizemos que o SIG
é um sistema do nível gerencial, pois dão suporte à estrutura decisória da
empresa. Os SAE dão suporte à função de planejamento estratégico de uma
empresa. Já os STC têm função de dar suporte aos trabalhadores do conheci-
mento em uma organização.
Na atividade três, se você respondeu que um SPT é responsável pelo proces-
samento, execução, manutenção e registro das transações organizacionais,
você compreendeu o conceito. Por exemplo, a decisão de pagar um funcionário
depende de informações como: o funcionário está na folha de pagamento ou
trabalhou apenas uma semana? Discuta seus exemplos com os colegas!
Finalmente, na atividade quatro, você deve ter respondido a opção (d), pois
informação crítica é essencial para a organização, porque permite a tomada de
boas decisões. A opção (a) está incorreta por informação excessiva é inútil para
o desenvolvimento da organização. A opção (b) também está incorreta porque

484 1º PeRÍodo • análise e desenvolvimento de sistemas • unitins


aula 3 • fundamentos de sistemas de infoRmação

informação mínima é essencial para uma boa gestão da organização porque


permite a execução de boas ações. E por fim a opção (c) está incorreta, pois
com a informação potencial é que se obtêm vantagens competitivas por utilizar
os sistemas de informação.

JAKOBIAK, François. Information scientifique et technique. Paris: Presses


Universitaire de France,1995.
LAUDON, K. Kenneth. C.; LAUDON, Jane.P. Sistemas de Informação com internet.
4. ed. Rio de Janeiro: LTC, 1999.
______. Sistemas de Informação Gerenciais. 5. ed. São Paulo: Pearson/Prentice
Hall, 2004.
O’BRIEN, James A.; MOREIRA, Cid Knipel. Sistemas de informação: e as deci-
sões gerenciais na era da Internet. 2. ed. São Paulo: Saraiva, 2004.
SBC. Sociedade Brasileira de Computação. Brasília: MEC, 1998. Disponível em:
http://<www.sbc.org.br>. Acesso em: 11 ago. 2008.
TARAPANOFF, Kira. Inteligência Social e Inteligência Competitiva. Departamento
de Ciência da Informação. Universidade de Brasília. Disponível em: <http://
www.encontros-bibli.ufsc.br/bibesp/esp_01/2_tarapanoff.pdf>. Acesso em:
28 jul. 2008.

Você já está pronto para seguir em frente! Vamos, agora, conhecer o processo
de tomada de decisão. Sabemos que qualquer escolha que fazemos em nossa
vida implica uma tomada de decisão. Mas isso só é possível se soubermos o que
é decisão... esse é nosso próximo assunto.

Anotações

unitins • análise e desenvolvimento de sistemas • 1º PeRÍodo 485


aula 3 • fundamentos de sistemas de infoRmação

486 1º PeRÍodo • análise e desenvolvimento de sistemas • unitins


aula 4 • fundamentos de sistemas de infoRmação

Aula 4
O processo de tomada de decisão

Esperamos que, ao final desta aula, você seja capaz de:


• compreender o conceito de tomada de decisão;
• conhecer sistemas de informações para a tomada de decisão.

Na primeira aula, você estudou conceito de sistemas. Como comentamos na


aula anterior, os conhecimentos necessários para a compreensão dessa disciplina
são cumulativos. Por isso lembre-se de que sistema é um conjunto de elementos
inter-relacionados com um objetivo comum. Além disso, você identificou que há
hierarquia de sistemas e que podemos classificá-los quanto à sua natureza, origem
e tipo. Não deixe dúvidas para trás! Retorne ao material sempre que necessário.

Qualquer escolha implica uma tomada de decisão. O processo de tomada


de decisão é uma tarefa que envolve decidir o que fazer, como fazer, quem deve
fazer e quando fazer, de forma a atingir objetivos e metas definidas.
Uma decisão não é somente racional (pensar e analisar), é necessário expe-
rimentar, adaptar e agir; é um processo de aprendizagem. O processo decisório
está diretamente relacionado aos sistemas de informação, ou seja, depois da
decisão é preciso executar.
Para entendermos melhor o processo de tomada de decisão, vamos aprender
o que é decisão.

4.1 Classificação da decisão


Uma decisão é um processo de análise e escolha, entre várias alternativas
disponíveis, para se alcançar um objetivo. Para entender o processo decisório,

unitins • análise e desenvolvimento de sistemas • 1º PeRÍodo 487


aula 4 • fundamentos de sistemas de infoRmação

além do tipo de decisão envolvida, é necessário identificar em que contexto ela


ocorre. É isso que você verá agora.

4.1.1 Tipos de decisão


Simon (1971) classifica as decisões em programadas ou não. Decisões
programadas são tomadas baseadas em regras, rotinas, procedimentos padrões,
fornecendo estabilidade. Essas decisões exigem processos simples, que envolvem
memória e hábitos.
Decisões não-programas são as que podem ser alteradas, modificam-se rapi-
damente no decorrer do tempo, ou seja, as soluções são encontradas à medida
que os problemas aparecem. Esse tipo de decisão envolve mais a experiência
individual e a intuição.
Além dessas classificações em programadas e não-programadas, existe o grau
de risco, que é a condição para tomada de decisão. Nesse momento se conhecem
a probabilidade de uma alternativa gerar um produto ou um resultado positivo.

4.1.2 Níveis de decisão


Segundo Laudon e Laudon (1999), no contexto organizacional, a decisão é
representada em três níveis, demonstrando a importância da decisão dentro das
organizações. Esses níveis são representados em forma de pirâmide, conforme
figura um a seguir.

Figura 1 Modelo da pirâmide.

Fonte: adaptado de Laudon e Laudon (1999).

Vamos analisar a definição de cada nível apresentado na figura.


• Nível estratégico: é nele que se tem a possibilidade de desenvolver estra-
tégias para que a organização seja capaz de atingir seus objetivos.
• Nível tático: está relacionado ao controle administrativo, definindo operações
e novas regras de decisão, que irão ser aplicadas no nível operacional.

488 1º PeRÍodo • análise e desenvolvimento de sistemas • unitins


aula 4 • fundamentos de sistemas de infoRmação

• Nível operacional: a decisão é um processo no qual se assegura que as


atividades operacionais sejam desenvolvidas corretamente, utilizando
os procedimentos e regras pré-estabelecidos.
Freitas e outros (1997) dizem que existe uma relação entre os níveis e tipos
de decisão. Observe essa relação na figura dois.

Figura 2 Relação entre níveis organizacionais e os tipos de decisão.

Fonte: adaptado de Freitas e outros (1997).

Percebe-se, na figura dois, que quanto mais elevado o nível organizacional,


maior a incidência de decisões não-programadas.

4.2 Processo de tomada de decisão


Uma decisão é uma escolha entre várias possibilidades de ser fazer uma
coisa ou de se atingir um determinado objetivo. A solução de problemas começa
com a tomada de decisão. Um modelo, desenvolvido por Simon (1971), divide a
tomada de decisão em três fases: inteligência, projeto e escolha. E, para o resul-
tado da solução do problema, são aumentadas mais duas fases: implementação
e monitoramento (STAIR; REYNOLDS, 2002).
Simon (1971) propôs um modelo de decisão dividido em três fases, conforme
figura três a seguir.

unitins • análise e desenvolvimento de sistemas • 1º PeRÍodo 489


aula 4 • fundamentos de sistemas de infoRmação

Figura 3 Modelo decisório.

Fonte: Simon (1971).

Observe a definição dos três passos do modelo de divisão exposto por


Simon (1971).
• Inteligência: problemas e/ou oportunidades são identificados e definidos.
• Projeto: soluções e análise de alternativas são desenvolvidas.
• Escolha: seleção das melhores ações dentre as alternativas.
A inteligência é a fase em que se explora, define e categoriza os dados,
para que se possa identificar o problema. Na concepção, são geradas e quan-
tificadas alternativas e designados critérios para solução do problema. Na fase
de escolha, identifica-se e organiza-se a informação e selecionam-se as melhores
alternativas entre aquelas que estão disponíveis. O feedback é o retorno que
pode ocorrer entre as fases de escolha, concepção e inteligência, readaptando
para novas informações.
Além das fases anteriormente citadas, Stair e Reynolds (2002) definem mais
duas fases para a solução do problema, conforme demonstra a figura quatro.

Figura 4 Fases da tomada de decisão do processo de solução de problemas.

Fonte: Stair e Reynolds (2002).

490 1º PeRÍodo • análise e desenvolvimento de sistemas • unitins


aula 4 • fundamentos de sistemas de infoRmação

Veja as definições das fases de tomadas de decisão do processo de solução


de problemas implementado por Stair e Reynolds (2002).
• Implementação: é a execução da ação para efetivar a solução.
• Monitoramento: determina se os resultados previstos foram alcançados.
A implementação é execução da alternativa escolhida, e o monitoramento
é o acompanhamento da situação alterada pela implementação da alternativa
escolhida, procurando se adequar e atender as expectativas esperadas. Já a
tomada de decisão é o processo de responder a um problema, ao procurar e
selecionar uma solução.

4.3 Modelos de tomada de decisão


Os modelos de tomada de decisão fazem com que as organizações se ajustem
ao seu ambiente, reconhecendo que a decisão é um processo incerto. Isso resulta
na compreensão de que buscam soluções que podem ou não ser favoráveis.
Outro fato é que não existem limites para o número de modelos de tomada
de decisão. A seguir, veremos como Simon (1971) define alguns modelos de
tomada de decisão.

4.3.1 Modelo racional


O modelo racional prescreve uma série de passos que devem ser seguidos
para aumentar a probabilidade de que as decisões serão lógicas e bem funda-
mentadas. O primeiro passo consiste em identificar o problema, definir os obje-
tivos da decisão e diagnosticar as causas. Em seguida, deve estabelecer metas
para eliminar o problema, gerar soluções alternativas, selecionar as melhores,
implementá-las e monitorá-las para a solução do problema.

4.3.2 Modelo político


O modelo político resulta no processo de tomada de decisão em que os
interesses individuais superam os objetivos organizacionais. Esse modelo de
processo de tomada de decisão leva em consideração aspectos como poder,
força, influência e autoridade. É o poder de influenciar ou controlar decisões
individuais, departamentais ou organizacionais.
Esse modelo é dividido em etapas: definição do problema, escolha da meta,
procura de soluções alternativas, escolha da melhor alternativa e sua implemen-
tação. Os processos políticos acontecem quando as decisões envolvem incer-
tezas, desacordos e pouca informação.

4.3.3 Modelo contextual


O modelo contextual para a tomada de decisão é divido em: reconhecimento,
design e escolha. O reconhecimento consiste na identificação do problema e no
fornecimento de alternativas para chegar à decisão. O design consiste na veri-

unitins • análise e desenvolvimento de sistemas • 1º PeRÍodo 491


aula 4 • fundamentos de sistemas de infoRmação

ficação e na estruturação das decisões alternativas. E, por fim, a escolha está


relacionada com a avaliação e a escolha da melhor alternativa.
Na conclusão desta aula, você deve observar que tanto os tipos quanto os
níveis e os modelos de tomadas de decisão devem ser levados em conta na hora
de decidir o que fazer. Além disso, todo o processo deve ser analisado para que
possa dar base para as decisões.

Você conheceu, nesta aula, como funciona um processo de tomada de


decisão. Dentro desse processo, temos de levar em conta os tipos de decisão
(programadas e não-programadas) e seus níveis (estratégico, tático e opera-
cional). Além disso, é muito importante saber escolher o modelo recomendado
para cada situação. Simon (1971) cita alguns modelos, como: racional – iden-
tificação do problema, definição dos objetivos da decisão e diagnóstico das
causas; político – definição do problema, escolha da meta, procura de soluções
alternativas, escolha da melhor alternativa e sua implementação (leva em consi-
deração poder, força, influência e autoridade); contextual – reconhecimento,
design e escolha. Com esse aparato, fica mais fácil decidir que decisão tomar.

1. Quais as fases que envolvem a tomada de decisão? Discorra sobre elas.

2. Assinale (V) ou (F) sobre os tipos de decisão.


( ) Decisões programadas são baseadas em procedimentos padrões.
( ) Em decisões não-programadas se conhece a probabilidade de uma
alternativa gerar um resultado positivo.
( ) Grau de risco são decisões tomadas à medida que os problemas
aparecem.
Agora, assinale a alternativa que traz a seqüência correta da classificação.
a) V, V, F d) F, F, F
b) V, V, V e) V, F, V
c) V, F, F

3. É correto afirmar que, quanto mais elevado o nível organizacional, maior a


incidência de decisões não-programadas? Justifique.

4. Relacione a segunda coluna de acordo com a primeira sobre os conceitos


dos modelos de tomada de decisão.

492 1º PeRÍodo • análise e desenvolvimento de sistemas • unitins


aula 4 • fundamentos de sistemas de infoRmação

a) Modelo racional ( ) É divido em reconhecimento, design e


escolha.
b) Modelo político ( ) Consiste em identificar o problema,
definir os objetivos da decisão e diag-
nosticar as causas.
c) Modelo contextual ( ) Leva em consideração aspectos como
poder, força, influência e autoridade.

Na atividade um, você deve se lembrar de que as fases que envolvem a


tomada de decisão são:
• inteligência: problemas e/ou oportunidades são identificados e
definidos;
• projeto: soluções e análise de alternativas são desenvolvidas;
• escolha: seleção das melhores ações dentre as alternativas.
E para a solução do problema ainda existem as fases de:
• implementação: é a execução da ação para efetivar a solução;
• monitoramento: determinar se os resultados previstos foram alcançados.
Não deixe de citar nenhum item e observe se sua resposta seguiu esses
parâmetros de definição.
Na atividade dois, a seqüência correta é V, F, F, portanto opção (c). Decisões
programadas são baseadas em procedimentos padrões, regras, rotinas. As
decisões não-programadas são decisões tomadas à medida que os problemas
aparecem. Já o grau de risco, para se tomar uma decisão, se conhece a proba-
bilidade de uma alternativa gerar um resultado positivo.
Na atividade três, segundo Freitas e outros (1997), quanto mais elevado o
nível organizacional, maior a incidência de decisões não-programadas. Essas
decisões precisam ser tomadas, geralmente, sem que o problema seja conhecido,
ou seja, de natureza complexa, ou mesmo de suma importância, que necessite
de uma atenção especial. Essa última situação é mais comum acontecer no nível
estratégico, pois mesmo com a existência de planos estratégicos, não possuem
um ciclo uniforme de atividade.
Na atividade quatro, a seqüência correta é c, a e b. O modelo contextual é
divido em reconhecimento, design e escolha, em que se reconhece o problema,
define a estrutura das decisões alternativas e escolhe a melhor alternativa. O
modelo racional identifica o problema, define os objetivos da decisão, analisa
as causas, gera soluções alternativas, seleciona a melhor alternativa, faz sua

unitins • análise e desenvolvimento de sistemas • 1º PeRÍodo 493


aula 4 • fundamentos de sistemas de infoRmação

implementação e monitoração para solucionar o problema. Já o modelo político


leva em consideração aspectos como poder, força, influência e autoridade, ou
seja, os interesses individuais superam os objetivos organizacionais.
Você acertou as respostas das atividades propostas? Então atingiu os obje-
tivos de compreender o conceito de tomada de decisão e conhecer sistemas de
informações para a tomada de decisão. Parabéns!

FREITAS, H.; BECKER, J. L.; KLADIS, C. M.; HOPPEN, N. Informação e decisão:


sistemas de apoio e seu impacto. Porto Alegre: Ortiz, 1997.
HADDAD, Claúdia Maria Salles. Sistemas de Informação e a tomada de decisão
executiva: um estudo exploratório na indústria química nacional. Santos:
Universidade Católica de Santos, 2007. Disponível em: <http://biblioteca.
universia.net/html_bura/ficha/params/id/33745796.html>. Acesso em:
2 ago. 2008.
LAUDON, Kenneth. C.; LAUDON, Jane Price. Sistemas de Informação com
internet. 4. ed. Rio de Janeiro: LTC, 1999.
SIMON, H. A. Comportamento administrativo. 2. ed. Rio de Janeiro: FGV,
1971.
STAIR, Ralph M.; REYNOLDS, George W. Princípios de sistemas de informação:
uma abordagem gerencial. 4. ed. Rio de Janeiro: LTC, 2002.

Você conheceu a teoria em relação aos processos decisórios. Agora, chegou


a hora de ver como isso funciona na prática. Ou seja, você verá como os sistemas
de informação auxiliam nos processos decisórios.

Anotações

494 1º PeRÍodo • análise e desenvolvimento de sistemas • unitins


aula 5 • fundamentos de sistemas de infoRmação

Aula 5
Sistemas de informação e
o processo decisório

Esperamos que, ao final desta aula, você seja capaz de:


• utilizar sistemas de informações para a tomada de decisão;
• compreender os sistemas de apoio à decisão.

Esta aula tem como base o conceito de sistemas de informação: um conjunto


de elementos inter-relacionados com um objetivo comum. Esse conceito pode
ser revisto na aula dois. Também deve ser base para o conteúdo que será visto
as tipologias de sistemas de informação, trabalhados na aula três: Sistemas de
Processamento de Transações (SPT), Sistemas de Informação Gerencial (SIG),
Sistemas de Apoio à Decisão (SAD), Sistemas de Apoio ao Executivo (SAE),
Sistemas de Automação de Escritório (SAE) e Sistemas de Trabalhadores do
Conhecimento (STC). Dúvidas? Retomo seus estudos!

O processo decisório está diretamente relacionado com os sistemas de infor-


mação, ou seja, depois da decisão, é preciso executar. Nesse momento, os
sistemas de informação são fundamentais para a tomada de decisão e ainda
podem fornecer assistência imediata na solução de problemas, sugerindo alter-
nativas e dando auxílio à decisão final.
Começaremos analisando a influência dos sistemas de informação na
tomada de decisões.

5.1 Sistemas de informações para a tomada de decisão


Conforme visto nas aulas anteriores, sistema é um conjunto de elementos
dinamicamente relacionados que se reúnem em torno de uma atividade para

unitins • análise e desenvolvimento de sistemas • 1º PeRÍodo 495


aula 5 • fundamentos de sistemas de infoRmação

atingir um objetivo. Esse objetivo opera sobre a entrada de dados para fornecer
um resultado esperado. A partir desse conceito, surgiu o termo sistemas de
informação, que é um conjunto de elementos computacionais relacionados que
coletam, armazenam, manipulam e transmitem informações, a fim de atender um
objetivo determinado (HADDAD, 2007).
Os sistemas de informação voltados para a tomada de decisão têm como
objetivo prover informações, proporcionar os resultados esperados, capazes de
aumentar a produtividade, reduzir tempo de espera e processamento.
Podemos classificar os sistemas de informação para a tomada de decisão
considerando a forma pela qual eles são utilizados. Observe a seguir.
• Somente recuperação de dados: o sistema somente recupera dados de
uma única base de dados.
• Recuperação e análise de dados: o sistema recupera e também analisa
informações de uma base de dados.
• Análise de várias bases de dados: o sistema recupera e faz análise de
várias bases de dados.
• Avaliação de decisões utilizando modelos de simulação: o sistema avalia
as decisões por meio de simulação de cenários futuros.
• Proposta de decisões: o sistema propõe decisões a serem tomadas.
• Proposta da melhor decisão: o sistema escolhe a melhor decisão a ser
tomada.
É importante que uma empresa defina como a decisão de diferentes tipos
de sistemas de informação serão analisados e usados. Stair e Reynolds (2002)
fazem uma síntese dos vários tipos de sistemas de informação usados nas orga-
nizações, conforme demonstra a figura um.

Figura 1 Modelo simplificado de tomada de decisão utilizando sistemas


de informação.

Fonte: Stair e Reynolds (2002).

496 1º PeRÍodo • análise e desenvolvimento de sistemas • unitins


aula 5 • fundamentos de sistemas de infoRmação

Como mostra a figura um, as dimensões de decisões e os sistemas utilizados


resultam em um modelo de organização de múltiplas camadas. Os níveis mais
elevados na organização (topo da pirâmide) têm maior autoridade de tomada
de decisão. Porém tanto as dimensões de decisão quanto os sistemas empresa-
riais em uso variam de acordo com a posição e o nível do tomador de decisões
dentro da organização.
Vimos, na aula quatro, os níveis organizacionais. Agora vamos analisar a
importância da decisão nesses níveis.
• Nível operacional: a decisão no nível operacional utiliza procedimentos
e regras preestabelecidas de decisões. As decisões operacionais geral-
mente resultam em uma resposta imediata.
• Nível tático: as decisões no nível tático são utilizadas para decidir as
operações de controle, formular regras de decisão. São necessárias
informações e a análise das possibilidades de decisão.
• Nível estratégico: a decisão no nível estratégico tem a finalidade de
desenvolver estratégias para que a organização seja capaz de atingir
seus objetivos.
Apoiar a tomada de decisão consiste em oferecer um suporte computacional
específico em cada fase do processo decisório.

5.2 Sistemas de apoio à decisão


Conforme já visto na aula três, vários tipos de sistemas dão suporte às orga-
nizações e alguns diretamente no processo de tomada de decisão. Os Sistemas
de Informação Gerencial (SIG) são considerados como um conjunto de pessoas,
dispositivos, banco de dados e procedimentos utilizados para oferecer informa-
ções de rotina aos gestores e tomadores de decisão. E os Sistemas de Apoio
à Decisão (SAD) auxiliam os gestores de uma organização a tomar a melhor
decisão, independentemente da quantidade de fases do problema, da freqüência
com que essa decisão precise ser tomada e do tipo de estrutura do problema,
que pode ser estruturado ou não.
Além dos sistemas já estudados, temos também os sistemas especialistas
(SE). O conhecimento e as experiências de pessoas podem ser armazenados e
disponibilizados em sistemas de informação, ou seja, em sistemas especialistas.
Esses sistemas armazenam as experiências e o conhecimento de especialistas
em bases de conhecimento e fornecem soluções para determinados problemas,
quando essas informações são extraídas das bases de conhecimento, gerando
informações que auxiliem no processo de tomada de decisão.
Um dos impasses encontrados na maioria das empresas é obter informações
por meio de grandes volumes de dados gerados, ou seja, têm-se dados, mas eles
não são transformados em informações que facilitem a tomada de decisão.

unitins • análise e desenvolvimento de sistemas • 1º PeRÍodo 497


aula 5 • fundamentos de sistemas de infoRmação

5.2.1 Características dos sistemas de informação de apoio à decisão


Stair e Reynolds (2002) dizem que os sistemas de apoio à decisão (SAD)
possuem características que o transformam em uma ferramenta de suporte eficaz.
• Manipular grandes volumes de dados: um exemplo de manipulação de
grandes volumes de dados é o banco de dados, que permitem buscas
de informações em um SAD.
• Obter e processar dados de fontes diferentes: alguns dados podem estar
alocados em bancos de dados localizados em diferentes lugares, que
podem ser acessados e integrados com os dados internos de um SAD.
• Proporcionar flexibilidade de relatórios e de apresentação: os SAD possuem
formatos variados de relatórios. Assim os tomadores de decisão podem
obter as informações apresentadas no formato das suas necessidades.
• Possuir orientação tanto textual quanto gráfica: os SAD podem produzir
informações no formato de texto, tabelas, desenhos lineares, gráficos,
entre outros. Produzem assim entendimento real da situação para ele e
também transmitir para os outros.
• Dar suporte às abordagens de otimização, satisfação e heurística:
dependendo da complexidade do problema, os SAD têm a capaci-
dade de encontrar a melhor solução. Seja nos problemas menores
ou em problemas mais complexos, o sistema de computador pode
encontrar as melhores soluções, utilizando abordagens de satisfação
ou heurística.
Os SAD oferecem aos tomadores de decisão uma flexibilidade na
obtenção de ajuda computacional nas atividades de tomada de decisão.
Um SAD contém uma interface com o usuário, chamada de gerenciador de
diálogo, que permite acesso e manipulação com facilidade de um sistema
de apoio à decisão para obter informações. Além disso, tem acesso a banco
de dados externos que proporciona que um SAD percorra por vários bancos
de dados acessando várias informações. Por fim, o acesso a outros sistemas
computacionais permite que um SAD seja conectado a outros sistemas, como
o SPT (STAIR; REYNOLDS, 2002).

5.2.2 Metodologia dos sistemas de informação no processo decisório


Laudon e Laudon (1999) dividem o processo decisório em cinco etapas:
análise do problema, entendimento do problema, tomada de decisões, projeto
da solução e implementação. Vamos analisar cada item.
• Análise do problema: fase em que se identifica e reconhece os fatos do
problema, ou seja, definir o problema e as oportunidades existentes
de solução.

498 1º PeRÍodo • análise e desenvolvimento de sistemas • unitins


aula 5 • fundamentos de sistemas de infoRmação

• Entendimento do problema: consiste em obter um entendimento claro do


problema a ser resolvido.
• Tomada de decisão: define o objetivo para solução do problema, para
que não haja erros ou mesmo o fracasso do sistema. Apresenta uma
metodologia de solução de problemas.
• Projeto da solução: consiste em projetar o sistema para a solução do
problema, determinar como o sistema funcionará para atender as
necessidades da organização. A aquisição de componentes do sistema
como: hardware, software, bancos de dados, pessoas entre outros, faz
parte do projeto.
• Implementação: com o problema analisado, entendido, a tomada de
decisão definida e o projeto do sistema pronto, basta implementar o
sistema. Essa implementação envolve a criação ou modificação do sistema,
definidos na etapa de projeto, além de sua montagem e manutenção.
Vamos aplicar a metodologia de Laudon e Laudon (1999, p. 218-220) utili-
zando um exemplo feito por eles.

Dois psicólogos decidiram abrir uma clínica. Devido ao sucesso da clínica, decidiram
abrir outra. Porém, devido à falta de tempo, não arquivaram os registros da clínica. Os
psicólogos precisam manter registros dos pacientes, das sessões de terapia e das avalia-
ções. Eles devem também preparar uma cobrança quinzenal para cada paciente e manter
registros desses pagamentos. Mas os psicólogos mal têm tempo de manter as avaliações
dos pacientes, quanto mais para enviar as faturas de cobrança. E, como estão começando,
não possuem recursos para contratar secretárias.

Agora vamos analisar o problema, desenvolvendo um sistema de cobrança


de pacientes.
a) Análise do problema: os dados da discussão anterior dão base para
análise do problema.
b) Entendimento do problema: após a análise do problema, entende-se
que o problema é principalmente de fatores organizacionais, ou seja,
os psicólogos não têm tempo pra manter os registros adequados das
faturas nem para os outros registros do paciente.
c) Tomada de decisão: o objetivo da solução seria reduzir o tempo e o
esforço exigido para manter os registros dos pacientes e emitir as faturas.
Podemos propor, entre várias, uma solução alternativa: desenvolver um
arquivamento automatizado de registro de pacientes e um sistema de
cobrança, uma alternativa que economiza tempo.

unitins • análise e desenvolvimento de sistemas • 1º PeRÍodo 499


aula 5 • fundamentos de sistemas de infoRmação

d) Projeto da solução: o projeto desse sistema pode ser:


• entrada: dados básicos do paciente (nome, endereço, número do
seguro). Dados da transação do pagamento (data do pagamento
e valor);
• processamento: criar e manter os registros dos pacientes; calcular a
quantia devida por cada paciente a cada duas semanas; acumular
e somar as transações de pagamento para cada paciente; e ajustar
o saldo devedor por período;
• saídas: conta quinzenal para cada paciente; valor da fatura e do
pagamento; lista dos pacientes com faturas vencidas; lista das tran-
sações de pagamento mostrando datas e quantia pagas;
• banco de dados: arquivo simples de pacientes com os dados básicos;
arquivos de transações de pagamento. Um projeto de banco de
dados relacional permitiria uma combinação de diversos relatórios
e consultas;
• procedimentos: atualizar ou introduzir dados dos pacientes; intro-
duzir dados do pagamento; gerar faturas; gerar uma lista de tran-
sações de pagamento.
e) Implementação: transferir os dados essenciais dos pacientes dos seus
registros manuais para o banco de dados.
Podemos concluir então que um simples banco de dados relacional resol-
veria o problema dos psicólogos.

5.2.4 Exemplo de sistemas de apoio à decisão


À medida que a informática vai evoluindo dentro das empresas, é natural
que aumente a procura por sistemas de apoio a decisão. Um dos exemplos mais
conhecidos é o data warehouse (DW), que busca organizar os dados corpora-
tivos da melhor maneira para dar subsídios de informações aos gestores das
empresas para as decisões de nível tático e estratégico.
O data warehouse superou um dos obstáculos na busca da informação,
que era a ausência de uma base única capaz de prover informação, não
somente sobre os dados isolados de um setor, mas de dados interligados
previamente definidos de todos os setores que pertencem a uma empresa. A
unificação de diversas bases permite a escolha de estratégias, a partir de uma
visão das informações extraídas da consolidação dos dados originados em
toda a empresa.
Portanto o DW é um conjunto de dados extraídos do ambiente de produção
de uma empresa e de informações derivadas de planilhas eletrônicas, docu-
mentos textuais, etc., que, aplicadas técnicas de análises e de extração de

500 1º PeRÍodo • análise e desenvolvimento de sistemas • unitins


aula 5 • fundamentos de sistemas de infoRmação

dados, proporcionam um sistema que nos geram informações que auxiliam no


processo de tomada de decisão.

Saiba mais

Fonte

Ao final desta aula, chamamos a atenção para esta função importante dos
sistemas de informação: assistência imediata na solução de problemas e sugestão
de alternativas que auxiliem na tomada de decisão.

unitins • análise e desenvolvimento de sistemas • 1º PeRÍodo 501


aula 5 • fundamentos de sistemas de infoRmação

Nesta aula, estudamos como os sistemas de informação auxiliam no processo


decisório. Também conhecemos a classificação dos sistemas de informação para
a tomada de decisão considerando a forma pela qual eles são utilizados: somente
recuperação de dados: o sistema somente recupera dados de uma única base de
dados; recuperação e análise de dados: o sistema recupera e também analisa infor-
mações de uma base de dados; análise de várias bases de dados: o sistema recupera
e faz análise de várias bases de dados; avaliação de decisões utilizando modelos de
simulação: o sistema avalia as decisões por meio de simulação de cenários futuros;
proposta de decisões: o sistema propõe decisões a serem tomadas; proposta da
melhor decisão: o sistema escolhe a melhor decisão a ser tomada. Para finalizar,
além dos tipos de sistemas já estudados na aula três, vimos os sistemas especialistas
(SE), em que o conhecimento e as experiências de pessoas podem ser armazenados
e disponibilizados em sistemas de informação, ou seja, em sistemas especialistas.

1. Em um nível estratégico de uma organização, qual o sistema de informação


você indicaria para auxiliar a tomada de decisão?

2. Quais dos sistemas descritos a seguir não são sistemas de informação que
auxiliam os gestores na tomada de decisão?
a) SIG c) SAD
b) STC d) SE

3. Qual das afirmações a seguir sobre a utilização dos sistemas de informação


para a tomada de decisão é correta?
a) Prover informações, proporcionar os resultados esperados, capazes de
aumentar a produtividade, reduzir tempo de espera e processamento.
b) Responsável pelo processamento, execução, manutenção e registro das
transações organizacionais.
c) Definir a informação correta, em tempo hábil e no local adequado.

4. O data warehouse é um sistema de apoio à decisão. Pesquise e cite outros


exemplos de sistemas de informação para a tomada de decisão.

Na atividade um, o nível estratégico tem maior autoridade de tomada de


decisão, e os sistemas de apoio a decisão (SAD) auxiliam essa atividade.

502 1º PeRÍodo • análise e desenvolvimento de sistemas • unitins


aula 5 • fundamentos de sistemas de infoRmação

Na atividade dois, apenas a letra (b) é a correta. A intenção dos sistemas de


trabalhadores de conhecimento (STC) é de ajudar a empresa a integrar novos
conhecimentos no negócio, um sistema voltado para a pesquisa e consiste em
criar novos conhecimentos e informação. Já as letras (a), (c) e (d) são sistemas de
apoio à decisão em nível gerencial e estratégico de uma organização.
Na atividade três, é correto afirmar que os sistemas de apoio a decisão
provêm informações, proporcionam os resultados esperados, capazes de aumentar
a produtividade, reduzem tempo de espera e processamento, portanto a letra
correta é (a). A opção (b) está incorreta, pois o responsável pelo processamento,
execução, manutenção e registro das transações organizacionais, são os SPT. E,
por fim a opção (c) está incorreta porque é por meio da gestão da informação
que se define a informação correta, em tempo hábil e no local adequado.
Na atividade quatro, podemos citar como exemplo de sistemas de infor-
mação para a tomada de decisão o Business Intelligence (BI), que é um conjunto
de conceitos e metodologias que, fazendo uso de acontecimentos e sistemas
baseados nos mesmos, apóia a tomada de decisões em negócios.
Com a realização dessas atividades, você alcançou os objetivos de utilizar
sistemas de informações para a tomada de decisão e de compreender os sistemas
de apoio à decisão.

HADDAD, Claúdia Maria Salles. Sistemas de Informação e a tomada de decisão


executiva: um estudo exploratório na indústria química nacional. Santos: Universidade
Católica de Santos, 2007. Disponível em: <http://biblioteca.universia.net/html_
bura/ficha/params/id/33745796.html>. Acesso em: 25 ago. 2008.
LAUDON, Kenneth. C.; LAUDON, Jane Price. Sistemas de Informação com
internet. 4. ed. Rio de Janeiro: LTC, 1999.
STAIR, Ralph M.; REYNOLDS, George W. Princípios de sistemas de informação:
uma abordagem gerencial. 4. ed. Rio de Janeiro: LTC, 2002.

Dando continuidade aos nossos estudos, veremos um modelo conceitual de


gestão de operações e o funcionamento de sistemas de informação operacional.
Leia a aula antes da teleaula!

Anotações

unitins • análise e desenvolvimento de sistemas • 1º PeRÍodo 503


aula 5 • fundamentos de sistemas de infoRmação

504 1º PeRÍodo • análise e desenvolvimento de sistemas • unitins


aula 6 • fundamentos de sistemas de infoRmação

Aula 6
Informação operacional

Esperamos que, ao final desta aula, você seja capaz de:


• compreender o modelo conceitual da gestão de operações e como são
extraídas informações usadas nas tomadas de decisões;
• compreender o funcionamento e o conceito de sistemas de infor-
mação operacional.

Você deve ter notado que estamos sempre precisando do conceito de sistemas
de informação para avançarmos nos estudos. Nesta aula não será diferente.
Mas você já sabe o que é sistemas de informação, não é mesmo?

Antes de explanarmos sobre o funcionamento e conceito de um sistema de


informação gerencial, primeiramente se faz necessário o entendimento do processo
de gestão operacional e do modelo conceitual da gestão operacional.
É por meio desse modelo que conseguiremos compreender as reais neces-
sidades que nos levam a pensar e implementar um sistema de informações
operacionais em uma organização. É necessário descrever o funcionamento do
ambiente operacional, bem como a cadeia de valor agregada a esse modelo.
Sistemas de informação operacional são usados como ferramenta organi-
zacional para tratamento das informações operacionais de uma empresa. Um
erro comum ao pensarmos na implementação de um sistema de informação é
o de iniciarmos sua construção baseada apenas nos requerimentos do cliente.
A análise de requisitos é de suma importância, porém não é a única fonte de
pesquisa e informação que precisamos dispor. Entender a fundo o processo e
modelo do que se está por ser implementado é essencial para que haja sucesso
ao final do desenvolvimento.

unitins • análise e desenvolvimento de sistemas • 1º PeRÍodo 505


aula 6 • fundamentos de sistemas de infoRmação

Esperamos que você tenha um bom aproveitamento desta aula que se inicia.

6.1 Gestão operacional


Ao falarmos em sistemas de informação operacional, antes de tudo preci-
samos entender o que é a gestão operacional em uma empresa, qual o seu
modelo conceitual e o que está envolvido nesse processo. Somente a partir daí
poderemos conceituar o que é e para que serve um sistema de informação
operacional.
Podemos conceituar gestão operacional basicamente como sendo a gestão
do processo de transformação de recursos de entrada, seu tratamento, agre-
gação de valores e entrega do produto ao consumidor/cliente final.
Vamos ver um modelo conceitual de gestão operacional para você compre-
ender melhor o que estamos falando.

6.1.1 Modelo conceitual de gestão operacional


Estudaremos agora o que chamamos de modelo conceitual de gestão opera-
cional. O processo operacional de uma organização começa com a coleta dos
recursos de entrada. Podemos considerar esses recursos como sendo:
• materiais
• serviços
• informação
• recursos financeiros
• consumidores, etc.

506 1º PeRÍodo • análise e desenvolvimento de sistemas • unitins


aula 6 • fundamentos de sistemas de infoRmação

Após a coleta dos recursos de entrada, eles são submetidos a um processo


de transformação, em que passam por uma seqüência de ações agregadoras
de valor para a composição do produto final. Essa seqüência de ações é execu-
tada por outro conjunto de recursos que chamamos de recursos transforma-
dores, que podem ser:
• instalações (físicas, elétricas, etc.)
• máquinas e equipamentos
• pessoas
• tecnologia
• conhecimento, etc.

Os recursos transformadores são organizados conforme o processo opera-


cional de cada empresa. Durante o processo, à medida que os recursos de
entrada vão sofrendo a seqüência de transformações, ocorre o que chamamos
de processo de agregação de valor, que culminará no custo final do produto.
Esses valores agregados podem ser de transformação, localização, armazena-
mento, etc., dependendo do processo operacional.
Após a execução do processo de transformação dos recursos de entrada
e agregação de valor pelos recursos transformadores, obtemos a resultante do
processo que pode ser um produto ou serviço, dependendo da concepção da
empresa. Esse produto ou serviço é entregue ao cliente/consumidor final.
De forma sucinta, acabamos de demonstrar como funciona o processo opera-
cional de uma organização e como organiza sua gestão.

unitins • análise e desenvolvimento de sistemas • 1º PeRÍodo 507


aula 6 • fundamentos de sistemas de infoRmação

Exemplo
Para um melhor entendimento desse processo, imaginemos que estamos
diante de uma empresa fabricante de caixas de sapato.
Primeiro precisamos identificar os recursos de entrada que fazem parte desse
processo. Basicamente podemos considerar os seguintes recursos como sendo
de entrada no processo operacional:
• papelão
• cola
• tinta
• adesivos
• grampos
De posse dos recursos de entrada, a próxima etapa é identificar os recursos
transformadores que, na cadeira operacional, são responsáveis pela transfor-
mação e agregação de valor na concepção do produto final. Podemos consi-
derar como recursos transformadores os seguintes itens:
• máquinas e equipamentos
• tecnologia
• instalações
• pessoas
• conhecimentos
Na cadeia operacional, os recursos transformadores são organizados de
forma que todos os recursos de entrada sejam processados seqüencialmente
de forma que a cada passo da transformação sejam agregados valores ao
produto e que culmine com a produção de caixas de sapatos devidamente
formatadas, adesivadas e prontas para envio ao consumidor/cliente final
(HAYES, 2005).
Diante desse exemplo, podemos verificar a transformação da matéria
prima de entrada em um produto final acabado. A cada etapa (aquisição
da matéria prima, escolha do papelão apropriado, identificação das cores
da caixa, identificação de pessoal qualificado para a realização da trans-
formação, corte do papelão no formato correto, pintura e adesivagem das
caixas, etc.), é agregado um determinado valor ao produto. Esses valores
irão compor a precificação de custo do produto final. Dessa forma, a empresa
pode ter a noção clara de quanto poderá repassar o valor ao consumidor/
cliente final.
Nesse caso, podemos chamar esses valores de valor de transformação, mas
poderia acrescentar outros valores, como o de armazenamento do produto antes
da entrega ao cliente, por exemplo.

508 1º PeRÍodo • análise e desenvolvimento de sistemas • unitins


aula 6 • fundamentos de sistemas de infoRmação

6.2 Sistemas de informação operacional (SIO)


Segundo Zenone (2003), uma informação operacional gerada por um
sistema qualquer tem por finalidade simplesmente permitir que determinadas
operações continuem acontecendo dentro do ciclo operacional da empresa. A
concepção de um sistemas de informação operacional tem por objetivo garantir
que a cadeia operacional de uma organização funcione corretamente mantendo
a competitividade e produção da organização. É bastante comum encontrarmos
os SIO sendo chamados de Sistema de Processamento de Transações (SPT), pois
executa o tratamento das transações rotineiras da organização.
De posse das informações anteriores da nossa aula, fica simples definirmos
sistemas de informação operacional. São ferramentas de apoio operacional que
sejam capazes de coletar, manipular e controlar todas as informações pertinentes
à cadeia operacional da empresa. Essas ferramentas devem implementar cada
fase identificada no modelo conceitual da gestão operacional, considerando todas
as variáveis, para que se possa produzir informações cada vez mais precisas.
Devem também ser capazes de gerar informações sobre cada parte do
processo operacional e distribuir essas informações de forma que outra parte siste-
mática da empresa, nomeada de sistemas de informações gerenciais. Isso é neces-
sário para que esse setor possa fazer o cruzamento dessas informações e fornecer
aos gestores da organização informações para que tenham melhores condições
de tomarem decisões mais ágeis e com menor índice de risco de erro.
Um sistema de informação operacional preciso e de boa qualidade é uma
poderosa arma de controle e manipulação de informações que, se utilizadas
no momento e modo corretos, tem o poder de alavancar uma ampla vantagem
competitiva perante aos concorrentes (SLACK e outros, 2008).
Entre as informações que um SIO manipula, podemos citar como exemplo
informações que trafegam em um controle de estoque (registro de pedidos de
compra, registro de saídas, registro de materiais, etc.).
Exemplos de SIO
Podemos citar como exemplo de SIO aplicações do tipo:
• contas a pagar e receber
• controle e processamento de pedidos
• controle de estoques
• controle de faturamento
• controle de compras e recebimento
• controle de saída de produtos e serviços
Diante do que vimos na aula, você deve ter percebido a importância que
tem uma informação operacional em todo o sistema. Mas ainda temos outro tipo

unitins • análise e desenvolvimento de sistemas • 1º PeRÍodo 509


aula 6 • fundamentos de sistemas de infoRmação

de informação também importante: a gerencial. Esse é o assunto da próxima e


última aula.

Nesta aula, apresentamos o conceito de gestão com foco no processo opera-


cional, bem como a apresentação e identificação do fluxo um modelo conceitual
de gestão operacional considerando as fases pertinentes a esse modelo e todas
as variáveis envolvidas. Esse estudo teve a finalidade de gerar insumos para
um melhor aprendizado sobre para que servem SIO (Sistemas de Informação
Operacional) e seus objetivos.
Identificamos também que a principal função de um SIO é o de coletar e
manipular informações acerca do processo operacional da organização. De
posse desses dados, o ISSO gera informações que são tratadas e fornecidas aos
gestores por meio dos Sistemas de Informações Gerenciais. Nesse momento, as
informações são manipuladas de forma que apresentem a real situação organi-
zacional aos gestores e subsidiem uma quantidade significativa de informações
gerenciais para que possam ter uma maior confiança e menor risco nas tomadas
de decisão.

1. Conceitue gestão operacional e defina um modelo conceitual de gestão


operacional.

2. Qual(is) o(s) principal(is) objetivo(s) de um sistemas de informação


operacional?

3. Indique qual dos itens a seguir não podem ser considerado como recurso
transformador.
a) Máquinas
b) Pessoas
c) Matéria-prima
d) Equipamentos
e) Tecnologia

4. Não é função de um SIO:


a) coletar, manipular e controlar informações pertinentes à cadeia opera-
cional da empresa;
b) gerar, controlar e manipular informações gerenciais da empresa;

510 1º PeRÍodo • análise e desenvolvimento de sistemas • unitins


aula 6 • fundamentos de sistemas de infoRmação

c) gerar informações sobre cada parte do processo operacional;


d) distribuir informações de forma que outra parte sistemática da empresa
possa manipular essas informações.

Na atividade um, você deve descrever o conceito de gestão no que tange


ao processo operacional da organização, que vai desde a coleta dos recursos
de entrada, tratamento dos recursos, agregação de valor até a entrega ao consu-
midor final. Além disso, explane sobre o modelo conceitual de gestão operacional,
explicando cada fase do processo operacional. Considere a identificação e coleta
de recursos de entrada, identificação dos recursos transformadores e agregação
de valor, até a finalização do produto e entrega ao consumidor final.
Na atividade dois, identifique qual(is) objetivo(s) se espera de um sistemas
de informação operacional, como ser capaz de coletar, manipular e controlar
informações da cadeia operacional, implementar as fases descritas no modelo
conceitual de gestão operacional, ter a capacidade de transformar e gerar infor-
mações em cada fase desse processo, produzindo informações para que os
Sistemas de Informações Gerenciais possam manipulá-las e apresentá-las aos
gestores da empresa. Assim eles podem ter insumos qualificados e confiáveis
para agilizar e melhorar as tomas de decisões organizacionais.
Na atividade três, o item incorreto é a letra (c), pois matéria-prima é um
recurso de entrada, e não de transformação. Já as máquinas, pessoas, equipa-
mentos e tecnologia são recursos transformadores.
Na atividade quatro, o item incorreto é a letra (b), pois é função dos sistemas
de informação gerencial: gerar, controlar e manipular informações gerenciais da
empresa, conforme vimos nesta aula.
Os objetivos de compreender o modelo conceitual da gestão de operações
e como são extraídas informações usadas nas tomadas de decisões e compre-
ender o funcionamento e o conceito de sistemas de informação operacional
foram alcançados se você respondeu corretamente às questões.

HAYES, R.; PISANO, G.; UPTON, D.; WHEELWRIGHT, S. Operations, strategy


and technology: pursuing the competitive edge. River Street: John Wiley & Sons,
2005.
SLACK, N.; CHAMBERS, S.; JOHNSTON, R.; BETTS, A. Gerenciamento de
operações e de processos: princípios e prática de impacto estratégico. Porto
Alegre: Bookman, 2008.

unitins • análise e desenvolvimento de sistemas • 1º PeRÍodo 511


aula 6 • fundamentos de sistemas de infoRmação

ZENONE, Luiz Claudio. Marketing Estratégico e Competitividade Empresarial.


São Paulo: Novatec, 2003.

Vamos para a última aula! Fecharemos o conteúdo com a informação geren-


cial. Assim como vimos informação operacional nesta aula, faremos o mesmo,
agora, com informação gerencial.

Anotações

512 1º PeRÍodo • análise e desenvolvimento de sistemas • unitins


aula 7 • fundamentos de sistemas de infoRmação

Aula 7
Informação gerencial

Esperamos que, ao final desta aula, você seja capaz de:


• compreender o conceito de sistema de informação gerencial;
• entender para que servem seus papéis, funções e características.

Novamente precisaremos do conceito de sistemas de informação para avan-


çarmos nos estudos. Acrescentaremos, aqui, também os conhecimentos produ-
zidos por você em relação à aula anterior: informação operacional. Caso ache
necessário, retorne à aula e tire suas dúvidas!

De acordo com Meireles (2001), existe uma grande necessidade de o


sistema de informação estar associado e derivar da visão de futuro da orga-
nização. Essa visão foi construída com estratégias (corporativa, de posiciona-
mento e competitiva), com elementos da funcionalidade interna e elementos
da gestão sistêmica. Diante desse pensamento, uma organização deve estar
sempre atenta ao futuro e os sistemas de informação precisam acompanhar
essa visão e estarem intimamente ligados com as decisões da empresa.
Ainda segundo Meireles (2001), o sistema de informações gerenciais provê
a integração de todas as funções, procedimentos, dados e equipamentos da
organização em um sistema abrangente de forma a produzir as informações
necessárias para todos os níveis dentro da organização.
Segundo Rezende (2006), os sistemas de informação gerencial devem
contemplar o processamento de grupos de dados das operações e transações
operacionais, transformando-os em informações agrupadas para gestão.
Em outras palavras, podemos considerar um sistema de informações geren-
ciais como sendo um conjunto de todos os componentes que coletam, manipulam

unitins • análise e desenvolvimento de sistemas • 1º PeRÍodo 513


aula 7 • fundamentos de sistemas de infoRmação

e divulgam dados ou informações tanto relativos a hardware quando a software,


pessoas, sistemas de comunicação, etc., e a principal atividade deste é arma-
zenar corretamente a informação recebida, executar o tratamento dessa infor-
mação e, principalmente, apresentar o resultado de forma concisa e clara por
meio dos relatórios de gestão.

7.1 Funções de um SIG


Ao entrar no contexto empresarial, podemos encontrar três tipos de funções
que um sistema de informação gerencial pode desempenhar na organização:
suporte nos processos de negócio e operações, nas tomadas de decisão e na
geração de informações que possibilitem traçar estratégias competitivas. Vamos
ver cada item desses logo a seguir.
a) Suporte nos processos de negócio e operações – consideramos essa a
função mais básica de um SIG, pois envolve a coleta de informações,
seu registro nas bases de dados e o pré-processamento dessas informa-
ções coletadas.
b) Suporte nas tomadas de decisão – essa função é um pouco mais complexa
em um SIG. Esse é o processo que trata as informações coletadas e arma-
zenadas e que permite a geração de outras informações subsidiando os
gestores para que possam tomar decisões mais ágeis e assertivas. Em
alguns casos, os SIG costumam incorporar ferramentas de estatística para
aumentar mais o grau de assertividade na geração das informações.
c) Suporte estratégico – os SIG também possuem uma função bastante impor-
tante no suporte da estratégia competitiva da organização. Eles geram
informações para auxiliar os gestores a definir o posicionamento estraté-
gico competitivo da organização. Também auxiliam no controle interno da
organização com soluções de redução de custo, gestão de desempenho,
e indicam o efeito em tempo real dos custos de disfunções da organização
no que tange à contabilidade e aos relatórios financeiros da empresa.
A rápida evolução das mudanças tornou crítico o acesso ágil às informações
em ambientes competitivos. Os sistemas de informações gerenciais auxiliam no
tratamento e disponibilização de um maior e mais qualificado número de infor-
mações para o gestor, e isso caracteriza uma grande vantagem competitiva,
pois as decisões estratégicas poderão ser tomadas de forma mais assertiva e
cada vez mais em menos tempo.

7.2 Entradas para um SIG


Os dados de entrada em um sistema de informação gerencial são exclusi-
vamente gerados internamente na organização, porém a geração desses dados
pode vir de fontes internas e externas. Vamos aos dados.

514 1º PeRÍodo • análise e desenvolvimento de sistemas • unitins


aula 7 • fundamentos de sistemas de infoRmação

a) Dados de origem interna – os sistemas de informações operacionais são


a principal fonte geradora de dados para um SIG. Além disso, todas as
decisões em nível estratégico da empresa também podem ser conside-
radas fontes geradoras de informações para um SIG.
b) Dados de origem externa – dados de acionistas, consumidores, clientes,
fornecedores, concorrentes e etc. são exemplos de fontes externas de
dados para um SIG. Como exemplo, esses dados podem ser utili-
zados como mapeamento de segmentos de mercado para construção
de estratégia de lançamento de um determinado produto ou abertura
de lojas de varejo.

7.3 Saídas de um SIG


Em qualquer que seja o sistema, a saída de dados mais provável é a geração
de relatórios e, em um SIG, não é diferente. Esses relatórios são gerados e distri-
buídos aos gestores da organização e podem ser obtidos por meio de uma
solicitação on-line ou programados (batch). Os programados podem ser agen-
dados periodicamente ou sob demanda, dependendo da situação e período da
informação.
Em alguns casos, os sistemas detectam alguma informação que está previa-
mente programada para a geração de relatórios, quando da sua ocorrência.
Chamamos esses casos de exceção, que é quando algum fato indica que é
necessária uma ação e/ou decisão imediata para o caso. Chamamos o relatório
gerado para esses casos de relatório de exceção.
Outro tipo especial de relatório são os que têm por tema as atividades críticas
no processo operacional do dia anterior. Um exemplo desse tipo de relatório é
o relato dos níveis de estoques, produtos necessários de aquisição imediata,
volume de vendas, etc. Chamamos esse tipo de relatório de relatório indicador
de pontos críticos.

7.4 Tipos de sistemas de informações gerenciais


Se observarmos as empresas com maior criticidade, veremos que elas
sempre tiveram algum tipo de sistema de informação gerencial. Mesmo que
fosse apenas na cabeça das pessoas ou em processos. Com o advento dos
computadores, foi possível mudar os sistemas da informalidade para a formali-
dade, pois já era possível executar procedimentos e condensar dados com maior
agilidade e precisão.
Como vimos nas definições do SIG, ele deve promover a integração de todas
as funções, procedimentos, dados e equipamentos da organização de forma a
produzir informações necessárias a todos os níveis da empresa. Dessa forma,
os sistemas de informação gerencial precisam ser abrangentes o suficiente para

unitins • análise e desenvolvimento de sistemas • 1º PeRÍodo 515


aula 7 • fundamentos de sistemas de infoRmação

que consigam produzir todas as informações necessárias e gerar relatórios mais


precisos e qualificados.
Vamos ver alguns tipos de sistemas de informação gerencial.
a) Centro de Processamento de Dados (CPD) – os primeiros computadores
eram utilizados nas organizações como meio de processamento de
dados e executavam algumas poucas funções. Em geral, para proces-
samento de sistemas como: contabilidade, faturamento, folhas de paga-
mento, etc. Essas máquinas eram centralizadas no que chamávamos de
CPD (Centro de Processamento de Dados) e não se pensava em usar a
capacidade de processamento e armazenamento de informações de
que dispunham como uma forma de competitividade.
À medida que a área evoluía e aumentava a facilidade no processa-
mento de dados, outras tarefas de processamento de dados e gerência
de informações foram gradativamente incluídas nesse contexto. Os
CPD tiveram de se adaptar às mudanças com o desenvolvimento
de relatórios padronizados exclusivamente usados pelos gerentes
de operações.
b) Sistema de Apoio às Decisões (SAD) – esses sistemas interativos e amigá-
veis são operados por pessoas não especializadas em computadores e
que os utilizam no auxílio ao planejamento e tomadas de decisões. O
crescimento e evolução dos computadores permitiram que os gestores
pudessem criar seus próprios repositórios de dados e manipulassem
eletronicamente informações de acordo com cada necessidade, ao
invés de ficarem aguardando que relatórios fossem gerados.
c) Inteligência Artificial – tecnologia criada para simular caracterís-
ticas do cérebro humano, os sistemas especialistas baseados em
técnicas de inteligência artificial estão sendo usados nos diagnósticos
de problemas, além de oferecer recomendações de estratégias na
solução deles.
d) Sistemas de Relatórios Gerenciais – o setor operacional de uma empresa
se resume basicamente na gestão de rotinas operacionais. Cada rotina
é gerenciada por um sistema à parte, e chamamos de Sistemas de
Informação Operacional. Esses sistemas são responsáveis pela coleta,
tratamento e disponibilização de informações dos processos operacio-
nais da empresa. Essas informações são utilizadas em um processo
formal de relatórios chamados sistemas de relatórios gerenciais (SRG) e
são uma parte específica de um SIG. As informações são processadas
e são gerados relatórios gerenciais padronizados para utilização dos
gestores gerando a esses subsídios para as tomadas de decisões roti-
neiras e repetitivas.

516 1º PeRÍodo • análise e desenvolvimento de sistemas • unitins


aula 7 • fundamentos de sistemas de infoRmação

7.5 Características de um SIG


São características de um SIG:
• integrar vários módulos com o objetivo de tratarem dados e transfor-
má-los informações coerentes e decorrentes desses dados;
• cada módulo de um SIG é responsável pela execução de uma ou mais
tarefas dentro de uma determinada área da organização;
• os módulos são preparados para ter uma interação amigável com os
usuários coletando, processando e retornando os dados sobre fatos que
ocorrem na organização.

7.6 SIG no contexto de mercado (Software de gestão empresarial)


Para Zenone (2003), um sistema de gestão empresarial constitui-se por um
banco de dados, um aplicativo integrado e uma interface completa para os
usuários da organização, em que o sistema obedece a todas as regras de manu-
fatura, distribuição, finanças e vendas.
Os sistemas de gestão empresarial ou ERP (Enterprise Resource Planning)
não atuam somente no planejamento de recursos. Eles controlam e suportam
os diversos processos operacionais, produtivos, administrativos e comerciais da
organização.
Um sistema de ERP oferece diversas vantagens à organização e uma delas
é oferecer a possibilidade de eliminar diversos sistemas que operam separa-
damente e substituí-los por um conjunto integrado de aplicações. Apesar das
vantagens apresentadas por um ERP, sua implementação não é nada trivial. É
necessário dispor de algum tempo em sua implementação, pois afeta toda a
organização e é extremamente complexa e onerosa. Como afeta a organização
como um todo, em alguns casos são necessárias mudanças radicais no modo em
como a empresa trabalha.
Assim como na aula anterior, em que vimos informação operacional, você
deve ter percebido em que a informação gerencial pode contribuir na tomada
de decisões.

Nesta aula, apresentamos o conceito de sistemas de informações geren-


ciais e as funções no contexto empresarial. No contexto apresentado, um SIG
pode desempenhar várias funções, como suporte nos processos de negócio e
operações, suporte nas tomadas de decisão e suporte estratégico. Comentamos
sobre as entradas e saídas de um SIG e apresentamos os tipos de entrada com
dados de origem interna e externa e os tipos de saídas possíveis. Apresentamos

unitins • análise e desenvolvimento de sistemas • 1º PeRÍodo 517


aula 7 • fundamentos de sistemas de infoRmação

também suas características e os possíveis tipos de informações gerenciais, como


os sistemas de apoio à decisão, sistemas de relatórios gerenciais, entre outros.
Finalizamos com um breve comentário de um SIG no contexto de mercado, exem-
plificando com comentários sobre a ferramenta e conceito de ERP (Enterprise
Resource Planning).

1. Na sua visão, conceitue um SIG.

2. Comente sobre as funções de um SIG e sua importância em uma


organização.

3. Podemos considerar que a integração de vários módulos, com o objetivo


de tratarem dados e transformá-los em informações coerentes e decorrentes
desses dados, é uma característica de um SIG?
a) Verdadeiro
b) Falso

4. É uma desvantagem de um ERP:


a) ser complexa e onerosa.
b) eliminar diversos sistemas da organização.
c) substituir diversos sistemas por um conjunto integrado de aplicações.
d) n.d.a.

Na atividade um, você deve descrever o conceito de SIG baseado nas afir-
mações apresentadas por Meireles (2001) e Rezende (2006). Discorra sobre
as funcionalidades de um SIG de coleta, manipulação e relato dos dados ou
informações acerca do processamento realizado.
Na atividade dois, identifique as três funções de um SIG (suporte nos
processos de negócio e operações, suporte nas tomadas de decisão e suporte
estratégico). O suporte nos processos de negócio e operações envolve a coleta
de informações, seu registro nas bases de dados e o pré-processamento dessas
informações coletadas. Já o suporte nas tomas da decisão, trata as informações
coletadas e armazenadas e que permite a geração de outras informações subsi-
diando os gestores para que possam tomar decisões mais ágeis e assertivas. E,
por fim o suporte estratégico gera informações para auxiliar os gestores a definir
o posicionamento estratégico competitivo da organização.

518 1º PeRÍodo • análise e desenvolvimento de sistemas • unitins


aula 7 • fundamentos de sistemas de infoRmação

Na atividade três, o item correto é a letra (a), pois uma das características de
um SIG é integrar vários módulos com o objetivo de tratar dados e transformá-los
em informações coerentes e decorrentes desses dados.
Na atividade quatro, o item correto é a letra (a). No ERP, é necessário dispor
de algum tempo em sua implementação, pois afeta toda a organização e é extre-
mamente complexa e onerosa.
Resolveu as atividades? Então atingiu os objetivos de compreender o conceito
de sistema de informação gerencial e de entender para que servem seus papéis,
funções e características.

MEIRELES, Manoel. Sistemas de informação: quesitos de excelência dos


sistemas de informação operativos e estratégicos. São Paulo: Arte & Ciência,
2001. v. 1.
REZENDE, Denis Alcides. Engenharia de software e sistemas de informação.
3. ed. Rio de Janeiro: Brasport, 2006.
ZENONE, Luiz Claudio. Marketing Estratégico e Competitividade Empresarial.
São Paulo: Novatec, 2003.

Anotações

unitins • análise e desenvolvimento de sistemas • 1º PeRÍodo 519


aula 7 • fundamentos de sistemas de infoRmação

520 1º PeRÍodo • análise e desenvolvimento de sistemas • unitins

Você também pode gostar