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.