Desenvolvedor WEB
Desenvolvedor WEB
GLOSSÁRIO 476
REFERÊNCIAS 484
S umário
FUNDAMENTOS DE WEBDESIGN
UNIDADE 1 – ARQUITETURA DE INFORMAÇÃO 488
1.1 Usabilidade 489
1.2 Acessibilidade 494
1.3 Legibilidade 499
1.4 Fundamentos e padrões de desenho para WEB 502
1.5 Interfaces para sites WEB e portais 505
Glossário 510
Glossário 611
REFERÊNCIAS 612
CURRÍCULO DO AUTOR 613
Querido leitor e querida leitora.
É um prazer para nós saber que está dedicando seu precioso tempo para a
leitura desse e-book. Mas, antes que você inicie essa jornada, podemos te
contar um pouco de como foi a produção desse material?
Esse e-book é o resultado da compilação de material elaborado para o curso
Técnico em Informática, ofertado pelo Instituto Federal de Educação, Ciência e
Tecnologia de Brasília.
Esse curso, realizado na modalidade a distância, por meio de fomento da
bolsa-formação do PRONATEC, foi ofertado entre os anos de 2017 e 2019 e a
elaboração do material prezou por uma linguagem dialogada com estudantes
que estavam do outro lado da tela do computador ou do celular.
Por isso, te convidamos a fazer essa leitura aproveitando a linguagem dialogada
e sentindo-se parte da caminhada que fizemos com nossos estudantes.
Ele está organizado da seguinte maneira: no capítulo 1, veremos, Introdução a
Informática, no capítulo 2, Lógica de Programação e, no capítulo 3,
Fundamentos de Webdesign .
Desejamos que esse e-book seja uma jornada de aprendizagem para você!
E, além de aproveitar um pouquinho do material de nossos cursos, quem sabe
não te incentivamos a vir nos conhecer melhor e estudar conosco, não importa
se na modalidade presencial ou a distância!
Boa leitura!
7
MÓDULO I - INTRODUÇÃO À INFORMÁTICA
9
MÓDULO I - INTRODUÇÃO À INFORMÁTICA
Em nosso cotidiano empregamos tecnologias em quase tudo que utilizamos, desde um simples
celular a computadores bem mais potentes. Não é intrigante compreender como essas
modificações ocorreram ao longo do tempo?
Não é simples determinar o ponto de partida para uma síntese histórica da computação, uma
vez que existem muitos trabalhos e que diversas descobertas levaram à construção dos
primeiros computadores. Desde o tempo antigo, a humanidade usou ferramentas para realizar
cálculos, armazenar e processar informações. A primeira ferramenta usada para contar e ao
mesmo tempo representar as quantidades contadas eram os dedos, dando origem ao sistema de
numeração decimal. Nesta unidade, vamos ter a oportunidade de dialogar e refletir sobre
como todo esse processo de evolução da tecnologia ocorreu e como chegamos até às
tecnologias atuais. Antes de começar a conhecer a história e evolução dos computadores,
vamos compreender alguns termos importantes que estarão presentes em nossas atividades.
Saiba mais!
10
MÓDULO I - INTRODUÇÃO À INFORMÁTICA
Vamos começar conversando sobre esses conceitos importantes. Velloso (2011) indica que a
informática pode ser compreendida “com a informação automática, isto é, o tratamento da
informação de modo automático”. Logo, podemos compreender a informática como o uso dos
computadores eletrônicos no trato da informação. Esse neologismo foi criado na França (em
francês, informatique) em 1996 e depois popularizou-se para o inglês como informatic. Para
entender a história dos computadores e sua evolução, precisamos compreender como as
designações de seu emprego surgiram ao longo do tempo.
Cibernética
Teoria da Ciência da
Informática
Informação Computação
Teoria dos
Sistemas
12
Fonte: Adaptado de Velloso (2011)
MÓDULO I - INTRODUÇÃO À INFORMÁTICA
Veremos nesta unidade que os computadores surgiram na década de 40, nos tempos da Segunda
Guerra Mundial e, com eles, o termo processamento de dados. Com o passar do tempo, essa
designação do emprego dos computadores evoluiu para a informática, quando eles se
popularizaram e deixaram de ser privilégio de poucos. Assim, o termo informática passou a ser
utilizado para caracterizar procedimentos diversos que se apoiam no computador.
Vamos refletir?
13
MÓDULO I - INTRODUÇÃO À INFORMÁTICA
Agora que já compreendemos os conceitos iniciais para nos situarmos no contexto dos
computadores, vamos iniciar nossa viagem pelo tempo. Prepare-se!
O ábaco é um dos mais antigos instrumentos de cálculo que se tem notícia. Segundo muitos
historiadores, ele foi inventado na Mesopotâmia, pelo menos em sua forma mais primitiva. O
ábaco foi empregado pelos romanos, japoneses e chineses que o aperfeiçoaram. Embora
rudimentar e antigo, ele certamente serviu de inspiração para a evolução dos computadores
atuais.
a) Ossos de Napier - inventado por John Napier (1550-1617), era um dispositivo constituído por
tabelas de multiplicação gravadas em bastão, permitindo multiplicar e dividir de forma
automática. Esse dispositivo evitava a memorização da tabuada, o que trouxe grande auxílio
ao uso de logaritmos, em execução de operações aritméticas como multiplicações e divisões
longas. Napier ficou conhecido como o decodificador do logaritmo natural (ou neperiano) e
por ter popularizado o ponto decimal.
15
MÓDULO I - INTRODUÇÃO À INFORMÁTICA
c) A máquina calculadora Pascaline, baseada em rodas dentadas, criada por Blaise Pascal
(1623-1162), era considerada a primeira máquina de calcular que fazia operações de soma
e subtração. Sua máquina foi criada para ajudar seu pai na tarefa de computar impostos
em Rouen, na França.
16
MÓDULO I - INTRODUÇÃO À INFORMÁTICA
A máquina de Pascal foi aprimorada por um matemático alemão chamado Gottfried Wilhelm
Leibniz (1646-1726). O desenvolvimento do cálculo moderno, em particular o desenvolvimento
da integral e da regra do produto, é creditado a Leibniz. Foi ele quem descreveu o primeiro
sistema de numeração binário moderno (1705), tal como o sistema numérico binário utilizado
nos dias de hoje.
17
MÓDULO I - INTRODUÇÃO À INFORMÁTICA
Todas as novas descobertas sempre são impulsionadas por necessidades. Durante o século XVIII,
as fábricas de tecelagem desejavam implantar teares automatizados que aceitassem um meio
de entrada de dados para automatizar e controlar os desenhos nos tecidos. Assim, em 1801,
Joseph Marie Jacquard (1752-1834) desenvolveu um tear automático. Sua ideia criou a
primeira máquina mecânica programável a representar os padrões em cartões de papel
perfurado, que eram tratados manualmente. Sua máquina trabalhava tão bem que milhares de
tecelões perderam seus empregos com esse processo de automação. Os trabalhadores se
revoltaram e quase mataram o inventor.
18
MÓDULO I - INTRODUÇÃO À INFORMÁTICA
O projeto de Jacquard foi tão bem sucedido que sua ideia atravessou o Canal da Mancha e
serviu de inspiração para Charles Babbage (1791-1871), um professor de matemática da
Universidade de Cambridge.
Babbage estava tentando desenvolver uma máquina capaz de calcular polinômios por meio de
diferenças, o calculador diferencial. Ele construiu uma máquina de calcular que utilizava
cartões perfurados para controlar a forma como os cálculos eram realizados. Ele desenvolveu
uma máquina para “tecer números” que conseguia fazer cálculos como funções
trigonométricas e logaritmos .
Enquanto ele desenvolvia o calculador diferencial foi inspirado pela ideia de Jacquard, o que
fez com que Babbage optasse por construir uma nova e mais complexa máquina, o calculador
analítico.
O projeto de Babbage não era perfeito. Possuía desvantagens: a primeira era o fato de o seu
computador ser mecânico e, a segunda, era a precariedade da engenharia da época.
Apesar das dificuldades, seu invento impressionou o governo inglês. Esta nova máquina era
muito semelhante ao computador atual.
19
MÓDULO I - INTRODUÇÃO À INFORMÁTICA
20
MÓDULO I - INTRODUÇÃO À INFORMÁTICA
Saiba mais!
● Veja o vídeo no YOUTUBE do canal Marks Tuto Gamer para conhecer mais sobre a história
do ábaco. Acesse: https://www.youtube.com/watch?v=R3eFtQlNRXQ
● Você quer entender ainda mais sobre o funcionamento da “La pascaline” inventada por
Pascal? Veja uma animação que demonstra seu funcionamento.
Acesse: https://historiaybiografias.com/primera_calculadora/
● Assista ao vídeo no YOUTUBE do canal Marks Tuto Gamer que pode ajudar a compreender
a máquina de Pascal e sua história.
Acesse: https://www.youtube.com/watch?v=wVidblCSTH0
● Assista ao vídeo no YOUTUBE do canal Marks Tuto Gamer para conhecer mais sobre a
calculadora de Leibniz. Acesse: https://www.youtube.com/watch?v=lHd8mGIPZVg&t=18s
21
MÓDULO I - INTRODUÇÃO À INFORMÁTICA
20
MÓDULO I - INTRODUÇÃO À INFORMÁTICA
A jovem Ada Augusta era companheira de Babbage e trabalhou junto com ele nos anos que se
seguiram. Os dois desenvolveram vários projetos com o intuito de aperfeiçoar essa primeira
calculadora. Ada era filha do poeta Lord Byron e ficou conhecida como Ada Lovelace. Foi
considerada a primeira programadora da história. Ela projetava programas para a máquina de
Babbage. Os conceitos de subrotina (sequência de instruções que pode ser usada várias vezes),
loop (instrução que permite a repetição de uma sequência de cartões) e do salto condicional
(permissão para saltar algum cartão caso uma condição seja satisfeita) foram desenvolvidos por
Ada.
Ada Lovelace e Babbage foram dois pesquisadores que estavam muito além do seu tempo.
Várias outras máquinas mecânicas de somar foram construídas com diversas finalidades como
controlar negócios (principalmente caixas registradoras) e cálculos de engenharia, mas não
alcançaram grande sucesso. A prova desse avanço e da grandiosidade do feito de Babbage está
registrada na história, pois até a década de 1940 nada semelhante foi inventado que pudesse
superar o seu computador analítico.
As ideias de Babbage foram comprovadas só por volta de 1936 quando um jovem matemático
chamado Alan Turing, publicou um artigo, pouco conhecido, On computable numbers.
23
MÓDULO I - INTRODUÇÃO À INFORMÁTICA
O nome de Alan Turing é quase desconhecido para o público, mas sua contribuição foi
fundamental para o desenvolvimento de ideias que ocorreriam antes do computador
propriamente dito tornar-se realidade. A partir da publicação de Turing, os cientistas admitiam
que a matemática era uma ciência inteiramente relacionada com regras lógicas e não uma arte
misteriosa como se imaginava. Alan Turing criou a primeira máquina para decifrar os códigos
alemães durante a segunda guerra mundial. Tomas Flowers, em 1942, criou o Colossus,
utilizando as mesmas ideias de Turing. Era uma máquina que, uma vez plugada, programada e
alimentada, resolvia qualquer questão de criptografia em poucos minutos.
24
MÓDULO I - INTRODUÇÃO À INFORMÁTICA
Saiba mais!
O Teste de Turing
Figura 8 - O teste de Turing
Acesse: https://pt.wikipedia.org/wiki/Teste_de_Turing
25
MÓDULO I - INTRODUÇÃO À INFORMÁTICA
O próximo avanço dos computadores foi a invenção da máquina capaz de processar dados
baseada na separação de cartões perfurados (pelos seus furos). A façanha foi realizada pelo
americano Herman Hollerith (1860-1929). Quando ele era funcionário do Departamento de
Recenseamento dos EUA, percebeu que o processamento do censo anual levava cerca de 7 anos
para ser terminado apenas contabilizando as respostas de perguntas simples: sim ou não.
Em 1890, a máquina de Hollerith foi utilizada e reduziu o tempo de execução dos cálculos para
apenas 2 anos e meio. Sua máquina teve o diferencial de utilizar eletricidade na separação,
contagem e tabulação dos cartões perfurados. Mais tarde, Hollerith fundou uma companhia
para produzir máquinas de tabulação. Anos depois, em 1924, essa companhia veio a se chamar
IBM.
Você sabia?
Interessante não?
26
MÓDULO I - INTRODUÇÃO À INFORMÁTICA
Pingala, um matemático indiano, inventou o sistema de numeração binário por volta do século
III a.C. O sistema desenvolvido por Pingala estabelece que sequências específicas de uns e zeros
podem representar qualquer número, letra, imagem, som ou qualquer outro tipo de informação
computacional. Este sistema é largamente empregado no processamento de todos os sistemas
computacionais atuais.
Utilizando o sistema binário, Gotfried Leibniz, em 1703, desenvolveu a lógica num sentido
formal e matemático, no qual os zeros e uns representavam também os conceitos de ligado ou
desligado, verdadeiro ou falso, ou ainda, válido ou inválido.
Empregando cartões perfurados para seu controle de produção, em 1801, a máquina de tear
inventada por Joseph Marie Jacquard também utilizava o conceito binário no qual os buracos
no cartão indicavam o um (ligado) e as áreas não furadas indicavam os zeros (desligado). É claro
que esse sistema de controle e automação por cartões está longe de ser um computador, mas
demonstrou que as máquinas poderiam ser controladas pelo sistema binário empregando
programação.
Em 1854, George Boole publicou a álgebra booleana como um sistema completo que permitiria
a construção de modelos matemáticos para o processamento computacional.
27
MÓDULO I - INTRODUÇÃO À INFORMÁTICA
Os computadores podem ser compreendidos como máquinas que conseguem realizar milhares de
cálculos automaticamente, compostos de dispositivos de processamento, armazenamento,
entrada e saída. A computação pode ser compreendida como a busca de uma solução para um
problema a partir de entradas (inputs) e tem os seus resultados (outputs) depois de trabalhada
através de um algoritmo (programa ou software). A teoria da computação trabalha com estes
aspectos, sendo um subcampo da ciência da computação e da matemática. Durante milhares de
anos, a computação foi realizada com caneta e papel, ou com giz e ardósia, ou mentalmente,
por vezes com o auxílio de tabelas ou utensílios artesanais como vimos a partir da evolução da
história do computador. Assim, para entender a evolução dos computadores precisamos
entender a evolução da tecnologia.
Como exemplo desse tipo de esforço, em 1948, nos EUA, a Marinha, a Universidade de Harvard
e a IBM construíram o Mark I, um gigante eletromagnético. Mark I ocupava 120 m3, tinha
milhares de relés e fazia muito barulho. Uma multiplicação de números de 10 dígitos levava 3
segundos para ser efetuada. Este é apenas um exemplo, e ele não foi o primeiro.
29
MÓDULO I - INTRODUÇÃO À INFORMÁTICA
Em cerca de 50 anos, as tecnologias deram um salto que pode ser caracterizado por 4 fases:
a válvula a vácuo; o transistor; o circuito integrado e o microprocessador. A evolução do
poder de cálculos (processamento).
A seguir vamos nos debruçar sobre as gerações de computadores. As datas utilizadas para
definir os intervalos não são tão precisas e tomam por base as invenções, o surgimento das
tecnologias e lançamentos de equipamentos da época. Elas servem apenas para balizar a
linha do tempo.
O armazenamento dos dados era realizado em cartões perfurados que depois passaram a
ser feitos em fita magnética.
30
MÓDULO I - INTRODUÇÃO À INFORMÁTICA
Saiba mais!
31
MÓDULO I - INTRODUÇÃO À INFORMÁTICA
O primeiro computador inventado pelo homem foi o ENIAC (Eletronic Numerical Integrator
and Computer) que tinha como objetivo computar trajetórias táticas durante a II Guerra
Mundial, em 1943, mas foram lançadas apenas em 1946, pelos cientistas John Eckert e John
Mauchly. Ele possuía 17.468 válvulas, pesava 30 toneladas, tinha 180 m² de área construída,
sua velocidade era da ordem de 100 kHz. O ENIAC possuía apenas 200 bits de memória RAM.
Nesta época, John Von Neumann (1945) formalizou o projeto lógico de um computador.
Neste processo de desenvolvimento, ele sugeriu que as instruções (o programa constituído por
um conjunto de instruções) fossem armazenadas na memória do computador, de maneira
diferente ao que se fazia nos computadores anteriores que liam os cartões perfurados e
executam as instruções uma a uma. Até hoje os computadores seguem o que foi preconizado
por Von Neumann em seu modelo de arquitetura computacional.
32
MÓDULO I - INTRODUÇÃO À INFORMÁTICA
A segunda geração de computadores foi marcada pela substituição da válvula pelo transistor. O
transistor revolucionou a eletrônica, em geral, e os computadores em especial. Eles eram muito
menores do que as válvulas a vácuo e tinham outras vantagens: não exigiam tempo de
pré-aquecimento, consumiam menos energia, geravam menos calor e eram mais rápidos e
confiáveis. No final da década de 50, os transistores foram incorporados aos computadores.
34
MÓDULO I - INTRODUÇÃO À INFORMÁTICA
Saiba mais!
Figura 12 - Transistor
35
MÓDULO I - INTRODUÇÃO À INFORMÁTICA
Vamos refletir?
O diferencial dos circuitos integrados não era apenas o tamanho, mas o processo de
fabricação que possibilitava a construção de vários circuitos simultaneamente,
facilitando a produção em massa. Este avanço pode ser comparado ao advento da
imprensa que revolucionou a produção dos livros. Didaticamente os circuitos integrados
são categorizados de acordo com a quantidade de integração que eles possuem:
36
MÓDULO I - INTRODUÇÃO À INFORMÁTICA
Nesta geração, surgem o teclado para digitação de comandos e o monitor que permite a
visualização de sistemas operacionais primitivos. Nada que se compare aos sistemas gráficos
que conhecemos e utilizamos hoje.
Exemplar do Altair 8800 no Museu de Apple II Lançado em 1976, por Steve Jobs e Steve
História Americana no Smithsonian. Wozniak (fundadores da Apple Corp.) Foi o
Primeiro computador pessoal portátil, primeiro microcomputador pessoal a ter sucesso
produzido industrialmente para venda em comercial.
massa.
Fonte: foto retirada da internet. Disponível em: Foto retirada da internet. Disponível em:
<https://pt.wikipedia.org/wiki/Altair_8800#/me <https://pt.wikipedia.org/wiki/Apple_II#/media/File:Ap
dia/%20%20File:Altair_8800.jpg>. ple-II.jpg>.
Acesso em: 01 de nov.2017. Acesso em: 01 de nov.2017.
Um computador que representa a terceira geração foi o IBM’s System/360, voltado para o setor
comercial e científico. Ele possuía uma arquitetura plugável, na qual o cliente poderia
substituir as peças que dessem defeitos. Além disso, um conjunto de periféricos eram vendidos
conforme a necessidade do cliente. Outro evento importante desta época foi que a IBM passou
a separar a criação de hardware do desenvolvimento de sistemas, iniciando o mercado da
indústria de softwares. Isto foi possível devido à utilização das linguagens de alto nível nestes
computadores.
37
MÓDULO I - INTRODUÇÃO À INFORMÁTICA
Saiba mais!
Uma linguagem é considerada de alto nível quando ela pode representar ideias abstratas de
forma simples, diferente da linguagem de baixo nível que representa as próprias instruções
de máquina.
x=y*7+2
Os códigos load, mul, add e store são os mnemônicos que representam as instruções em
código de máquina (binário).
38
MÓDULO I - INTRODUÇÃO À INFORMÁTICA
Principais características:
39
MÓDULO I - INTRODUÇÃO À INFORMÁTICA
40
MÓDULO I - INTRODUÇÃO À INFORMÁTICA
e) Quinta geração (1996 — dias atuais)
A quinta geração está sendo marcada pela inteligência artificial e por sua conectividade. A
inteligência artificial pode ser verificada em jogos e robôs ao conseguir desafiar a inteligência
humana. A conectividade é cada vez mais um requisito das indústrias de computadores.
O contínuo processo de crescimento dos nossos computadores atuais sem dúvidas é fruto da
evolução dos processadores e da convergência digital. A Lei de Moore trata da capacidade de
processamento dos PCs. Publicada pela primeira vez na Electronics Magazine, em 1965, a regra
proposta por Gordon Earl Moore, engenheiro e um dos fundadores da Intel, ditava o ritmo com o
qual a indústria de chips deveria evoluir. A regra afirmava que o número de transistores em um
chip deve dobrar a cada 18 meses, mantendo o custo e o espaço ocupado. Na prática, isso
significa que a capacidade de processamento deve aumentar em 100% a cada um ano e meio. O
poder bruto não é a única modificação; o chip deve ser mais eficiente, o que significa que ele
deve ser capaz de realizar mais tarefas sem consumir mais energia.
E isso se aplica a celulares, cada vez mais finos e potentes, aos chips usados em objetos
domésticos inteligentes, tecnologia vestível e tudo mais. Facilita a difusão da internet e da
informação, também.
A convergência digital está cada vez mais presente em nosso dia a dia. A migração de
funcionalidades para um dispositivo único é uma realidade. Até nossos celulares e dispositivos
móveis são computadores, pois além de realizar ligações telefônicas executam outras funções
que estavam em outros equipamentos separados, mas agora estão presentes em apenas um
equipamento (máquina fotográfica, computador, modem de acesso à internet, videogame,
rádio, tv, gps etc.)
Questiona-se a continuidade da vigência da Lei de Moore e por quanto mais tempo ela ainda
poderá se manter válida. Precisamos refletir que a evolução da tecnologia não vai parar, mas o
ritmo poderá mudar tanto para cima quanto para baixo, a depender das novas descobertas
científicas. As empresas podem considerar que o investimento para manter este ritmo é muito
alto e não compensa mais; ao mesmo tempo, a competitividade pela inovação
42
MÓDULO I - INTRODUÇÃO À INFORMÁTICA
pode fazer acelerar este ritmo, alavancando o investimento ou ainda o surgimento de novos
materiais e técnicas. Existe também o problema da física: por quanto mais tempo será possível
continuar reduzindo os transistores e implantando em seus chips?
A fabricante Intel fez a previsão de que o silício não será mais usado em seus processadores de
7 nanômetros, previstos para 2017. A mudança de materiais, a evolução da nanotecnologia são
fatores que podem chacoalhar a indústria e colocar a Lei de Moore no passado.
Você sabia?
O primeiro bug de computador!
O termo “bug” foi associado a interferências e mal funcionamento bem antes de que existissem os
computadores modernos, sendo Thomas Edison um dos primeiros a usar este significado.
Mas foi uma mulher, Grace Murray Hopper, quem, em 1945, documentou o primeiro bug da
informática. Ao longo dos anos este termo se popularizou e hoje em dia utilizamos frequentemente
para referir-se aos erros nos programas de computador. Grace Brewster Murray Hopper (1906-1992),
doutora em matemática pela Universidade de Yale, passou pela história por ser uma inovadora
programadora durante as primeiras gerações de computadores. Em 1943, durante a segunda guerra
mundial, decidiu incorporar-se à marinha americana e foi enviada para o laboratório de cálculo
Howard Aiken na Universidade de Harvard, onde trabalhou como programadora no Mark I. Em 9 de
setembro de 1945, o grupo de trabalho de Aiken e Grace se encontrava na sala do Mark II tentando
averiguar porque o computador não funcionava adequadamente. Depois de um exame minucioso,
conseguiram detectar o problema, uma mariposa entre os contatos de uns dos relés do Mark II. Mais
tarde, Grace registraria o incidente no caderno de registros, colou a borboleta que causou o
problema e anotou embaixo a frase “First atual case of bug being found” (ver imagem abaixo).
Vamos rever?
46
MÓDULO I - INTRODUÇÃO À INFORMÁTICA
Vamos rever?
47
MÓDULO I - INTRODUÇÃO À INFORMÁTICA
Saiba mais!
Sites indicados:
Audiovisuais indicados:
48
MÓDULO I - INTRODUÇÃO À INFORMÁTICA
Questões de autoaprendizagem
1) Como funciona um relé e uma válvula? Faça uma pesquisa para explicar o
funcionamento de cada um deles.
5) Reflita sobre o porquê do celular hoje não ser apenas utilizado para fazer
ligações. O que aconteceu com ele? O que isso tem a ver com convergência
digital?
49
MÓDULO I - INTRODUÇÃO À INFORMÁTICA
A Arquitetura de um Computador
50
MÓDULO I - INTRODUÇÃO À INFORMÁTICA
No mundo de hoje, os computadores são usados para quase todas as tarefas imagináveis.
Atividades de rotina, como pagar contas, comprar mantimentos ou se comunicar com um
amigo podem ser feitas com um computador. É por isso que é importante não só saber como
usar um computador, mas também entender os componentes de um computador e o que eles
fazem.
51
MÓDULO I - INTRODUÇÃO À INFORMÁTICA
2.1 O computador
Vamos refletir: um computador pode ser compreendido como um dispositivo eletrônico usado
para armazenar e processar informações. Seu papel em nossas vidas é muito importante. Os
computadores são utilizados em áreas como educação e pesquisa e, também, para divulgar
notícias, enviar mensagens de amigos e familiares, criar apresentações, manter registros
pessoais e profissionais, realizar previsões meteorológicas, bem como para uma variedade de
atividades de lazer ou de negócios.
Além disso, eles exigem programas que indiquem o tipo de tratamento ou processamento a ser
realizado. Os programas que os computadores utilizam são chamados de SOFTWARE.
53
MÓDULO I - INTRODUÇÃO À INFORMÁTICA
54
MÓDULO I - INTRODUÇÃO À INFORMÁTICA
Os computadores desempenham um papel crucial no nosso dia a dia. Eles são usados em
empresas, escolas, escritórios, órgãos governamentais e lojas. Eles nos permitem comunicar
com a família e os amigos, criar um orçamento para casa, reservar passagens de avião ou
ingressos para o cinema ou ainda administrar um negócio.
Nas empresas, eles são usados para manter contas, criar registros de pessoal, rastrear
inventário, preparar apresentações e relatórios, gerenciar projetos e se comunicar por e-mail.
Eles também podem ser usados para projetar qualquer tipo de publicação, desde boletins
informativos simples até revistas de moda, materiais de marketing, livros ou jornais. No setor
de educação, os professores usam o computador na sala de aula como apoio a disciplinas ou
cursos, através de material audiovisual complementar, ou ainda para manter um registro dos
alunos e para acompanhar o seu desempenho. Assim como os alunos o utilizam para buscar
informações sobre vários temas, criar ou enviar trabalhos de casa.
55
MÓDULO I - INTRODUÇÃO À INFORMÁTICA
Os computadores também são usados para criar desenhos e imagens. Os fotógrafos usam
computadores para editar e aprimorar imagens. Os escritores usam computadores para
escrever o conteúdo de seus livros e criar ilustrações. Graças a eles, os escritores podem
mudar o conteúdo com muita facilidade e economizar muito tempo.
Os computadores também são divertidos, pois através deles você pode ouvir música, assistir
filmes, salvar e imprimir fotografias, enviar saudações e jogar.
56
MÓDULO I - INTRODUÇÃO À INFORMÁTICA
2.4 Peopleware
O termo peopleware refere-se aos agentes humanos (usuários, técnicos e programadores) que
fazem uso e configuram as ações a serem realizadas pelo hardware e software. Simples, não?
Somos nós que utilizamos e programamos os computadores.
2.5 Hardware
De forma geral, é a parte que podemos tocar no computador. Coletivamente, os equipamentos
elétricos, eletrônicos e mecânicos que compõem um computador são chamados de hardware.
Os dispositivos que se conectam a unidade do sistema (ou seja, o teclado, o mouse, os alto-
falantes, o monitor e assim por diante) são conhecidos como dispositivos periféricos, ou seja,
estão ligados ao computador.
57
MÓDULO I - INTRODUÇÃO À INFORMÁTICA
Vamos refletir?
Saiba mais!
58
MÓDULO I - INTRODUÇÃO À INFORMÁTICA
De acordo com a arquitetura de Von Neumann, esse modelo é composto pela Unidade Central
de Processamento (CPU), pela memória e pelos dispositivos de entrada e saída, todos
conectados entre si pelo barramento, conforme descrito no diagrama a seguir.
59
MÓDULO I - INTRODUÇÃO À INFORMÁTICA
● o acesso ao conteúdo dessa memória é identificado por um endereço que indica sua
posição, não importando o tipo de dados nele contido;
● a execução das instruções ocorre sempre em sequência, a não ser que o programa altere
essa sequência encaminhando o fluxo de execução para a instrução seguinte.
O conceito introduzido por Von Neumann permitiu executar diversas aplicações diferentes
sobre um mesmo hardware sem a necessidade de realizar modificações no computador para
aceitar a execução de determinado programa. Nasceu, neste momento, o conceito de
armazenamento de código (programa gravado e reutilizável), assim como a possibilidade de se
ter um programa para cada propósito, sem necessidade de mudar o hardware.
Vamos refletir?
Uma operação (aritmética ou lógica) pode precisar de mais de um dado de cada vez e
é necessário ter um local para guardá-los e recuperar sempre que precisar. Outra
questão é que nem sempre um programa é executado de forma sequencial e
precisaremos acessar outras partes do código de forma não sequencial. Assim um
computador precisa da memória principal para armazenar instruções e dados
temporariamente.
60
MÓDULO I - INTRODUÇÃO À INFORMÁTICA
Vários componentes são necessários para que um computador possa funcionar. A Unidade
Central de Processamento (UCP) ou processador é composto por componentes que possuem os
módulos que interpretam os códigos (software) e os que executam as funções lógicas e
aritméticas de propósito gerais. Porém, os dados e instruções devem ser inseridos de alguma
forma no sistema e, desta forma, é necessário um módulo que permita a entrada de dados. De
igual forma, o sistema precisa ser capaz de exibir os resultados depois do processamento. Esses
módulos são chamados de dispositivos de Entrada e Saída. Essa organização está descrita na
Figura 2.
De acordo com Stallings (2010), a função básica desempenhada por um computador é executar
o conjunto de instruções, que constituem um programa, armazenadas na memória. Assim, o
processador realiza o trabalho efetivo de executar as instruções especificadas no programa que
foi carregado na memória do computador.
Os dispositivos de entrada e saída (E/S) são responsáveis pela comunicação com os usuários e o
mundo externo (monitor, teclado ou mouse, por exemplo). Cada dispositivo de E/S possui um
controlador responsável pela comunicação com o computador. Esse exemplo fica melhor
compreendido se pensarmos na placa mãe (computador) e uma placa de vídeo (controlador)
para o dispositivo de saída monitor.
d) Memória
É na memória principal que os dados são armazenados. Eles são transferidos por meio dos
barramentos que interligam os demais componentes sempre que necessários.
Segundo Monteiro (2007), num sistema de computação não é possível construir ou utilizar
apenas um tipo de memória, já que ela por si mesma já se constitui de um subsistema, sendo
constituída por vários tipos de componentes.
61
MÓDULO I - INTRODUÇÃO À INFORMÁTICA
A memória RAM (memória de acesso aleatório) tem como característica principal a sua
volatilidade. Isso quer dizer que ela necessita de energia constante para que os dados fiquem
armazenados na sua estrutura. Assim, a RAM é utilizada para armazenamento temporário de
dados.
Na região conhecida como Unidade Central de Processamento UCP (CPU – Central Processing
Unit), ou processador, estão isolados os circuitos que executam operações com dados, tais
como adição e subtração. A unidade central de processamento divide-se em: Unidade de
Controle (UC), necessária ao sincronismo da tarefa; ULA (Unidade Lógica e Aritmética),
responsável pelos cálculos e os registradores, para armazenar temporariamente os resultados.
Saiba mais!
Acesse: https://www.youtube.com/watch?v=hCB-5X4FkCQ
62
MÓDULO I - INTRODUÇÃO À INFORMÁTICA
A CPU troca dados com a memória por meio dos barramentos. O registrador de endereçamento
à memória é responsável por guardar o endereço da memória a ser usado para executar a
próxima instrução de leitura ou escrita.
O registrador temporário de dados recebe um dado lido da memória e armazena um valor a ser
gravado na memória. Existe ainda o registrador de endereçamento de E/S que armazena o
endereço de um determinado módulo de dispositivo de E/S, e um registrador temporário de
dados de E/S que é usado para trocar dados entre a CPU e o módulo do dispositivo de E/S.
f) Processamento de Instruções
● as instruções são lidas na memória pelo processador, uma de cada vez (ciclo de busca);
● cada instrução é executada pelo processador, podendo utilizar diversas operações (ciclo
de execução). Todo o processamento utilizado para o ciclo de execução é definido como
o ciclo de instrução.
O processador busca uma instrução na memória a cada início de ciclo de instrução. Utilizando o
registrador denominado de contador de programa (program counter - PC) o processador guarda
o endereço da próxima instrução que deve ser lida na memória.
O registrador de instruções armazena o código (em bits) que define qual será a ação do
processador ao executar essa instrução.
63
MÓDULO I - INTRODUÇÃO À INFORMÁTICA
De acordo com Stallings (2010), essas ações podem ser organizadas em quatro categorias:
Monteiro (2007) indica que uma interrupção consiste em uma série de procedimentos que
suspendem o funcionamento corrente do processador, desviando sua atenção para outra
atividade. A interrupção é uma forma válida para evitar o desperdício de tempo do processador
para atender a dispositivos bem mais lentos, como uma impressora, por exemplo.
Saiba mais!
Vamos fixar o conteúdo de forma divertida?
64 Acesse: https://www.youtube.com/watch?v=HTt3TVQpjrE
MÓDULO I - INTRODUÇÃO À INFORMÁTICA
Analógico - O computador analógico representa variáveis por meio de analogias físicas. Trata-se
de uma classe de computadores que resolve problemas referentes a condições físicas, por meio
de quantidades mecânicas ou elétricas, utilizando circuitos equivalentes como analogia ao
fenômeno físico que está sendo tratado.
65
MÓDULO I - INTRODUÇÃO À INFORMÁTICA
c) Quanto ao âmbito
Geral - Os computadores de âmbito geral são capazes de desempenhar uma grande variedade
de tarefas por meio da execução de um grande número de programas. Estes computadores são
bastante utilizados em escritórios, escolas e em nossas casas.
d) Quanto à utilização
Comercial - O computador comercial constitui a grande maioria dos equipamentos utilizados nas
empresas; caracteriza-se por permitir o trato rápido e seguro de problemas que comportam
grande volume de entrada e saída de dados.
66
MÓDULO I - INTRODUÇÃO À INFORMÁTICA
Uso geral - São disponibilizados pela maioria dos fabricantes e comportam o emprego tanto
na área científica quanto na área comercial.
67
MÓDULO I - INTRODUÇÃO À INFORMÁTICA
Um mainframe possui a ele conectado uma grande quantidade de terminais que podem ser
terminais burros (todo processamento é feito no computador principal - o mainframe - e o
terminal apenas é um meio para entrar e visualizar dados) ou terminais inteligentes (este
terminal faz parte do processamento nele mesmo e normalmente é um computador pessoal
conectado ao mainframe).
Saiba mais!
Entenda o que são os supercomputadores!
O supercomputador Watson, da IBM, foi premiado como Personalidade do Ano
pelo Webby Awards, conhecido como o “Oscar da internet”.
Para saber um pouco mais sobre as curiosidades dos supercomputadores, explore a seção de
infográficos desenvolvida pelo portal Terra.
Acesse: https://www.terra.com.br/noticias/infograficos/supercomputadores/
Os Mainframes são utilizados por grandes empresas que necessitam armazenar grande
quantidade de informação e ter um acesso rápido a essa informação. Ao contrário dos
supercomputadores, estes são de âmbito amplo e podem ser utilizados em grandes organizações
como bancos, companhias de seguros e centros de investigação. Como exemplo clássico de
Mainframes, estão os equipamentos fabricados pela IBM (S/390, G5/G6, z800/ z900, System z9
e z10).
Estações de trabalho -As estações de trabalho estão situadas logo abaixo dos
minicomputadores. São equipamentos que normalmente possuem arquitetura RISC e sistema
operacional UNIX. A capacidade de memória e velocidade de processamento de uma estação de
trabalho se assemelha as de um minicomputador. Contudo, ao contrário dos minicomputadores,
elas são empregadas por usuários, sendo projetadas para realizar tarefas “pesadas”, em geral,
na área científica ou industrial, como cálculos matemáticos, projetos que utilizam
processamento de imagem ou renderização 3D, entre outras finalidades mais complexas.
Podemos citar como exemplos: Sun Workstation W2100z, Dell Precision T5600.
69
MÓDULO I - INTRODUÇÃO À INFORMÁTICA
Computadores pessoais - Os computadores pessoais estão presentes em nosso dia a dia com
diversos formatos, modelos e finalidades. Hoje até carregamos um computador pessoal na mão
e ele também serve para telefonar. Brincadeiras a parte, os computadores pessoais (em inglês
Personal Computers - PC) também são conhecidos como “microcomputadores” ou simplesmente
“micro”. Esse tipo de computador tem a característica marcante de ter um processador único
(ainda que com vários núcleos) e sua capacidade de processamento evoluiu rapidamente com o
passar do tempo. Aos poucos, devido a sua grande capacidade de processamento, foi tomando
conta do mercado e desbancando outras versões de computadores como minicomputadores e
workstations. Devido à redução de preços (custo dos equipamentos), o computador pessoal se
tornou cada vez mais acessível, facilitando ainda mais o upgrade (atualização e ampliação do
hardware) de sua capacidade computacional. A tendência atual é que cada vez mais o
computador pessoal diminui em tamanho. Ele está presente em todos os tipos de empresas, em
nossos lares, escolas e em quase todas as nossas atividades cotidianas.
Desktop
Figura 4 - Desktop
Fonte: Imagem disponível em:
<https://images.app.goo.gl/GzS1dSCnA8Ut7HMx8>.
Acesso em: 01 de nov.2017.
70
MÓDULO I - INTRODUÇÃO À INFORMÁTICA
Notebook
Figura 5 - Notebook
Fonte: Imagem disponível em:
<https://pixabay.com/pt/vectors/notebook-computado
r-laptop-neg%C3%B3cios-303161/>.
Palmtop
Figura 6 - Palmtop
Fonte: Imagem disponível em:
<https://amcmuseum.org/wp-content/uploads/2015/06/pal
mtop-pc.jpg>.
Acesso em: 01 de nov.2017.
MiniPC
Figura7 - MiniPC
Fonte: Imagem disponível em:
<https://pt.made-in-china.com/co_dajinsheng/produc
t_Fashion-High-Quality-H81u-Support-Windows-Sys
tem-Mini-PC_rssehnnog.html>.
71
MÓDULO I - INTRODUÇÃO À INFORMÁTICA
Tablet, iPad
Figura 8 - Tablet
Fonte: Imagem disponível
em:<http://escolhasegura.com.br/wp-content/uploads/2015/0
1/Tablet-Sony-S.jpg>. Acesso em: 01 de nov.2017.
Smartphones
Saiba mais!
Quer saber um pouco mais sobre os Smartphones?
Acesse: https://www.showmetech.com.br/brasil-uma-historia-contada-por-celulares/
72
MÓDULO I - INTRODUÇÃO À INFORMÁTICA
2.7 Software
O software é um conjunto flexível e modificável de instruções, ordenadas em sequência lógica,
fornecidas ao hardware do computador para a execução de procedimentos necessários à
solução de problemas e de tarefas do processamento de dados. É esse conjunto de códigos que
torna possível que um computador genérico tenha uma variedade ilimitada de usos e
aplicações. Um conjunto particular e específico destas instruções é chamado de programa.
Quando um computador está usando um programa em particular, dizemos que ele está rodando
ou executando aquele programa.
a) Software básico
73
MÓDULO I - INTRODUÇÃO À INFORMÁTICA
● Administrativos
● Tecno-Científicos
● Automação Industrial
● Automação Comercial
74
MÓDULO I - INTRODUÇÃO À INFORMÁTICA
● Apoio Educacional
● Especiais e Científicos
75
MÓDULO I - INTRODUÇÃO À INFORMÁTICA
a) Qual a finalidade de um sistema operacional?
Você deve estar se perguntando: o que ele faz afinal? O Sistema operacional é responsável por
todos os recursos do computador. Ele cuida de todo software que o usuário quer executar e de
todo o hardware que o usuário deseja utilizar no computador. De forma resumida, ele
administra o computador para você. Quando você conecta um pendrive, por exemplo, é o
sistema operacional que faz toda “a mágica” de disponibilizar os arquivos para você. Entendeu?
Quando você pressiona o botão Ligar do seu computador, ele realiza uma série de testes para
garantir que tudo irá funcionar corretamente e se certifica de que os componentes físicos
estejam disponíveis. Depois dessa verificação, o computador dá início a execução do sistema
operacional.
77
MÓDULO I - INTRODUÇÃO À INFORMÁTICA
Cada sistema operacional utiliza uma interface gráfica do utilizador (GUI) de aparência
diferente, portanto, se você mudar de um sistema para outro, provavelmente, no início,
estranhará um pouco. Contudo, não se preocupe, pois todos eles são desenhados para serem
fáceis de usar. Os princípios básicos são os mesmos em qualquer sistema operacional.
b) Microsoft Windows
O sistema operacional Windows foi desenvolvido pela Microsoft em meados da década de 1980.
Desde então, diversas versões desse sistema operacional foram desenvolvidas. Atualmente as
versões mais utilizadas do Windows são a 7, 8 e 10.
Vamos refletir?
Antes da interface gráfica do utilizador (GUI) ser criada, as pessoas
usavam comandos no teclado para poder se comunicar com o
computador.
Por outro lado, em servidores, principalmente os que estão hoje funcionando em nuvem
(cloud), é muito comum acessá-los remotamente via rede apenas utilizando o teclado, ou
seja, sem interface gráfica.
78
MÓDULO I - INTRODUÇÃO À INFORMÁTICA
c) Mac OS X
O Sistema Operacional Mac OS X foi desenvolvido pela Apple Inc. Todos os computadores Mac,
fabricados pela Apple, vêm com ele instalado. As versões recentes são conhecidas como macOS.
O macOS v10.12 “Sierra” é o décimo terceiro sistema operacional da família macOS, sendo o
sucessor do OSX v10.11 “El Capitan”. Anunciado em junho de 2016, traz, além da mudança no
nome, cujo objetivo foi padronizar com os demais sistemas da Apple (iOS, tvOS e watchOS),
melhorias nos recursos de continuidade, função picture in picture, abas para todas as janelas de
apps e integração com a assistente virtual Siri.
79
MÓDULO I - INTRODUÇÃO À INFORMÁTICA
d) GNU / Linux
O sistema operacional GNU / Linux tem uma fantástica história de criação. Ele está relacionado
diretamente com o surgimento do conceito do Software Livre idealizado por Richard Stalman e
de sua vontade de criar um sistema operacional livre. Stalman começou a criar o sistema pelos
softwares. Em seu primeiro passo, criou o compilador GCC para a linguagem C e outros
softwares. Sua proposta era desenvolver depois, em um segundo momento, o Kernel do Sistema
Operacional chamado Hurd. O destino se encarregou de fazer o resto.
80
MÓDULO I - INTRODUÇÃO À INFORMÁTICA
Tomando por base os softwares desenvolvidos por Stalman, um jovem estudante de computação
Finlandês chamado Linus Torvald resolveu também criar um sistema operacional, mas começou
pelo Kernel. Porém ele usaria os softwares desenvolvidos por Stalman para testar seu Kernel e,
assim, surgiu a primeira versão do GNU / Linux.
Esse sistema operacional toma por base o uso de código aberto. Significa que ele pode ser
estudado, modificado e redistribuído por qualquer pessoa que tenha esse interesse em qualquer
lugar do mundo. O GNU/Linux é como uma sorveteria em que se pode escolher diversos
sabores. Cada sabor de sorvete é uma distribuição diferente do GNU/Linux. Todos tem acesso à
receita de como o sorvete foi feito. Todos podem modificar e distribuir a receita sem pagar
nada por isso. Qualquer usuário pode escolher sua distribuição, ou seja, pode escolher o sorvete
que mais lhe agrada.
Saiba mais!
Para saber um pouco mais sobre como instalar um Windows 10 e um Ubuntu no mesmo
computador, convido vocês a acessar esse vídeo que selecionei. É o canal do YOUTUBE
chamado DIOLINUX que trata sobre Software Livre e GNU/Linux.
Acesse: https://www.youtube.com/watch?v=-3YnsQ5-qjw
82
MÓDULO I - INTRODUÇÃO À INFORMÁTICA
Vamos rever?
84
MÓDULO I - INTRODUÇÃO À INFORMÁTICA
Vamos rever?
É na memória principal que os dados são armazenados. Eles são transferidos por
meio dos barramentos que interligam os demais componentes sempre que
necessários.
85
MÓDULO I - INTRODUÇÃO À INFORMÁTICA
Saiba mais!
Sites indicados:
3. DistroWatch.com: Put the fun back into computing. Use Linux, BSD.
(DistroWatch.com: volte para a computação. Use Linux, BSD.) - Disponível em:
https://distrowatch.com/?language=PT
86
MÓDULO I - INTRODUÇÃO À INFORMÁTICA
Saiba mais!
Audiovisuais indicados:
87
MÓDULO I - INTRODUÇÃO À INFORMÁTICA
Questões de autoaprendizagem:
d) Qual o significado das descobertas e das proposições feitas por John Von
Neumann para a computação?
88
MÓDULO I - INTRODUÇÃO À INFORMÁTICA
Questões de autoaprendizagem:
( 1 ) Processador.
( ) Alternativa válida para evitar o desperdício de
tempo do processador com dispositivos lentos.
( 2 ) Registrador de endereçamento de
memória. ( ) Todo processamento necessário para o ciclo
de execução.
( 3 ) Registrador de endereço de E/S.
89
MÓDULO I - INTRODUÇÃO À INFORMÁTICA
Questões de autoaprendizagem
Pesquisa
3) História dos processadores - Criar uma linha do tempo com pelo menos 15
processadores diferentes.
90
Sistemas de Numeração
Nesta unidade,
denominada Sistemas de
Numeração, vamos compreender os sistemas
de numeração, suas bases, representações e
processos de conversão de bases.
Ao término desta unidade esperamos atingir o
seguinte objetivo:
entender e lidar com o
sistema de numeração existente nos
computadores.
91
MÓDULO I - INTRODUÇÃO À INFORMÁTICA
3.1 Como tudo começou?
O termo digital deriva de dígito, que por sua vez tem origem no latim digitus que significa
dedo. Assim, ao longo de sua evolução a humanidade desenvolveu o processo de contagem e os
dedos sempre foram os instrumentos mais eficientes e simples para a contagem de pequenos
valores. O sistema de numeração decimal, o mais usado atualmente, é um sistema de base dez,
pois são dez os dedos das duas mãos dos seres humanos.
Fica fácil compreender o motivo do sistema decimal que empregamos ter a base 10, afinal
temos dez dedos na mão e podemos contar com eles.
93
MÓDULO I - INTRODUÇÃO À INFORMÁTICA
1 2 3
Mas esta é a única forma de representação numérica? Claro que não! Não é a única e tão pouco
foi a primeira inventada pelo ser humano. Quando falamos em nosso sistema de numeração
decimal, estamos nos referindo ao sistema de representação decimal com números hindu-
arábicos.
94
MÓDULO I - INTRODUÇÃO À INFORMÁTICA
Porém, existem outras formas de representação como, por exemplo, o sistema de numeração
romano. Eles utilizavam letras para representar quantidades. Vamos ver, na tabela 2, esta
representação.
4 5
Conjunto 1 Conjunto 2
Os computadores têm como base para seu funcionamento a utilização de eletricidade. No caso
dos computadores, os números servem para representar os circuitos ou fios. Pense da seguinte
forma. Um fio, ou circuito, pode ter dois estados:
Assim, em um computador, trabalhamos com sinais elétricos que são representados por 0 e 1.
Esses números formados com zeros e uns tem qual significado? Bem, isso depende da
interpretação e da convenção. Observe o exemplo a seguir, na tabela 3.
96
MÓDULO I - INTRODUÇÃO À INFORMÁTICA
1 2
3 4
Vamos ligar todos os circuitos em que temos o Seguindo o mesmo raciocínio, podemos
número 1, na sequência de números do nosso representar outros caracteres no display,
exemplo. Temos a letra H demonstrada em nosso conforme a tabela abaixo.
display.
98
MÓDULO I - INTRODUÇÃO À INFORMÁTICA
b) Representação de dados
Representar informações apenas com 0 e 1 é algo bastante limitado. Assim os bits podem ser
agrupados para ter um significado útil. O byte é o menor grupo ordenado de bits que representa
uma informação útil e inteligível para o ser humano. A palavra de um computador
99
MÓDULO I - INTRODUÇÃO À INFORMÁTICA
A representação de caracteres pode ser feita por meio de um CSS (Conjunto de Caracteres
Codificados - “Coded Character Set” ou “Character Encoding”). O CCS é definido como um
mapa de um conjunto abstrato de caracteres para um conjunto de valores inteiros não
negativos. Esses conjuntos de “Character Encoding” são regulamentados por meio de normas
ISO.
Podemos citar como exemplo o Código ASCII do inglês, “American Standard Code for
Information Interchange” (Código Padrão Americano para o Intercâmbio de Informação) de 7
posições (bits) que compreendem a representação de 96 caracteres voltados para leitura/
impressão e mais 32 para controle, sem nenhuma representação gráfica.
Posteriormente, o código ASCII foi ampliado para representar também um conjunto maior de
símbolos (8 bits), como forma de abranger outros idiomas além do inglês que passaram a
utilizar essa codificação.
Observe a tabela ASCII apresentada na Figura 3. A tabela apresenta 256 caracteres (de 0 até
255). O primeiro quadro da tabela são os caracteres de controle (ASCII control caracteres). No
segundo quadro, temos os caracteres imprimíveis (de 32 até 126). No terceiro quadro, a
extensão do código ASCII para atender outros idiomas (de 128 até 255).
Os três quadros da tabela são compostos por três colunas que demonstram a representação de
um mesmo código ASCII em dois formatos diferentes (sistemas numéricos diferentes): decimal e
hexadecimal.
É claro que existem outras codificações utilizadas como o sistema UNICODE Standard que
permite a distinção entre glifos e caracteres, sendo importantes para idiomas como árabe,
hebreu, idiomas orientais e idiomas com acentuação.
101
MÓDULO I - INTRODUÇÃO À INFORMÁTICA
103
MÓDULO I - INTRODUÇÃO À INFORMÁTICA
Como vimos na unidade II, os sistemas computacionais armazenam grandes volumes de dados
em memórias secundárias, pois elas têm custo mais barato que uma memória principal. Os
dados ficarão gravados na memória secundária e poderão ser acessados quando o usuário
necessitar. Esses dados normalmente estão organizados em forma de arquivos e podem conter
dados (códigos, textos, números), sons, imagens e vídeos. Todos esses tipos de dados quando
gravados são transformados para dados digitais e no final acabam por se transformar em zeros e
uns.
Caracteres Representações
ASCII
Decimal Hexadecimal Octal Binário
@ 64 40 100 01000000
$ 36 24 044 00100100
A 65 41 101 01000001
a 97 61 141 01100001
104
MÓDULO I - INTRODUÇÃO À INFORMÁTICA
Uma imagem, por exemplo, é decomposta em pixels (pontos na tela), de acordo com a sua
resolução da imagem (largura e altura). De acordo com a qualidade da imagem, teremos uma
padrão de cores diferentes. Vejamos um exemplo de uma imagem de resolução 320x230. Esta
imagem terá cerca de 73600 pixels. Considerando que a imagem tem 16 bits de cores para cada
pixel, obtendo então 1177600 bits no tamanho total da imagem, ou seja, cerca de 144 KB.
Para que possamos entender melhor como isso tudo ocorre, vamos ver alguns sistemas de
numeração e suas bases que são utilizados em sistemas computacionais, conforme observamos
no exemplo da tabela ASCII da Figura 3.
d) Sistema binário - sistema de numeração que possui 2 algarismos (0, 1), logo sua base
(mão) é 2.
105
MÓDULO I - INTRODUÇÃO À INFORMÁTICA
106
MÓDULO I - INTRODUÇÃO À INFORMÁTICA
Saiba mais!
Após gravar uma música, Janis pergunta a seu produtor, Celsão, se é possível levar em
seu pen drive o arquivo com a gravação. A partir daí, Celsão explica como é
armazenada a informação contida na música. Para isso, ele fala do sistema binário de
numeração e ensina que os computadores atuais trabalham com este sistema para
processar e armazenar dados. Acesse o link abaixo e aproveite para assistir essa
explicação bastante interessante.
Acesse: <https://www.youtube.com/watch?v=cN_J5FqnHGw>
107
MÓDULO I - INTRODUÇÃO À INFORMÁTICA
Desta forma, empregando o conceito de notação posicional, podemos realizar a conversão entre
diferentes bases. Vejamos como podemos compreender a notação posicional empregando o
número decimal 7450.
7450(10)
0 x 10º = 0 x 1 = 0
5 x 10¹ = 5 x 10 = 50
108
MÓDULO I - INTRODUÇÃO À INFORMÁTICA
Vamos refletir?
109
MÓDULO I - INTRODUÇÃO À INFORMÁTICA
110
MÓDULO I - INTRODUÇÃO À INFORMÁTICA
No caso do Hexadecimal, é necessário converter as letras aos valores decimais para o cálculo na
fórmula da numeração posicional. No exemplo acima (2CFE16), mantivemos as letras para
facilitar a compreensão. Observe que realizamos a conversão do valor decimal de cada letra
utilizando a tabela de valores da Figura 5.
Para o processo de conversão de bases, podemos utilizar um dos métodos descrito a seguir. Em
alguns casos, a depender do método de conversão, é importante utilizar a tabela de valores
descrita na Figura 5 para ajudar no processo de conversão.
Exemplos:
7 7 3 7
111
MÓDULO I - INTRODUÇÃO À INFORMÁTICA
F D F
A conversão, neste caso, é semelhante a anterior, porém inversa. Agora, iremos identificar o
valor binário de cada algarismo octal ou hexadecimal na tabela da Figura 5.
Exemplos:
6 7 3 7 = 1101110111112
B F E = 10111111111016
Exemplos:
6 7 3 7 = DDF16
Valor hexadecimal D D F
Hexa B F E = 57768
Valor octal 5 7 7 6
113
MÓDULO I - INTRODUÇÃO À INFORMÁTICA
47₈ = ?₁₀
b=8, n=2
47₈ = 4 x 8¹ + 7 x 8⁰ = 32 + 7 = 39₁₀
CFE₁₆ = ?₁₀
b=16, n=3
CFE₁₆ = 12(C) x 16² + 15(F) x 16¹ + 14(E) x 16⁰ =
12x256 + 15x16 + 14x1 = 3326₁₀
114
MÓDULO I - INTRODUÇÃO À INFORMÁTICA
115
MÓDULO I - INTRODUÇÃO À INFORMÁTICA
Saiba mais!
Acesse: <https://www.youtube.com/watch?v=IUPECKg7ll0>
116
MÓDULO I - INTRODUÇÃO À INFORMÁTICA
Vamos rever?
O termo digital deriva de dígito, que por sua vez tem origem no latim digitus que
significa dedo. Assim, ao longo de sua evolução a humanidade desenvolveu o
processo de contagem e os dedos sempre foram os instrumentos mais eficientes e
simples para a contagem de pequenos valores.
118
MÓDULO I - INTRODUÇÃO À INFORMÁTICA
Vamos rever?
O byte é o menor grupo ordenado de bits que representa uma informação útil e
inteligível para o ser humano. A palavra de um computador pode ser compreendida
como o tamanho da capacidade de armazenamento e transferência de informação
(na memória e CPU), ou como sendo um conjunto de bits que representa uma
informação útil naquele sistema computacional.
A notação posicional permite transformar qualquer valor de uma base N para a base
decimal. Para transformar de decimal para qualquer base usamos o método de
divisões sucessivas.
119
MÓDULO I - INTRODUÇÃO À INFORMÁTICA
Questões de autoaprendizagem
a) 101011012 = ( )16 = ( )8
b) FB716 = ( )2 = ( )8
c) 43258 = ( )2 = ( )16
d) 11112 = ( )16 = ( )8
e) 378 = ( )2 = ( )16
f) A7B16 = ( )2 = ( )8
g) 101011012 = ( )16 = ( )8
h) 27468 = ( )2 = ( )16
i) 474616 = ( )2 = ( )8
j) 11001101111101112 = ( )16 = ( )8
k) 274616 = ( )10
l) 274610 = ( )16
m) 27468 = ( )10
120
MÓDULO I - INTRODUÇÃO À INFORMÁTICA
Questões de autoaprendizagem
121
MÓDULO I - INTRODUÇÃO À INFORMÁTICA
Saiba mais!
122
MÓDULO I - INTRODUÇÃO À INFORMÁTICA
Portas Lógicas
Vamos começar!
MÓDULO I - INTRODUÇÃO À INFORMÁTICA
A lógica é uma palavra que vem do grego “logos” e pode ser compreendida como razão,
discurso ou linguagem. Derivamos o verbo “leigenin” a partir da palavra “logos” com o
significado de colher, reunir, juntar, calcular ou ordenar. A lógica está inserida neste sentido,
denotando uma relação entre a linguagem e o conhecimento, considerando que o conhecimento
é expresso por meio do rigor e da precisão do discurso linguístico.
O filósofo Thales de Mileto (623 a 548 a.C.) está relacionado entre os sete maiores filósofos da
antiguidade. Devido a seu esforço na busca de um princípio único, a essência do universo, é
descrito como o primeiro filósofo. Seu esforço rendeu grandes descobertas matemáticas, dentre
as quais a primeira previsão do eclipse solar. Dentre os seus trabalhos destacam-se o uso e a
aplicação de demonstrações e provas na ciência e matemática em geral.
Entre os sete grandes filósofos gregos, encontra-se também o discípulo de Platão, Aristóteles
(384 a 322 a.C), o qual também foi professor de Alexandre “o Grande”. A Lógica que
conhecemos tem múltiplas influências das contribuições de Aristóteles, dentre as quais
destacamos:
125
MÓDULO I - INTRODUÇÃO À INFORMÁTICA
Aristóteles foi considerado o pai da lógica ainda que naquela época o termo lógica não tivesse
sido cunhado até então. No século II a.C., quando os filósofos estoicos passaram a utilizar a
palavra lógica como centro do seu pensamento é que o termo passou a ser conhecido.
Já na idade média, Gottfried Wilhelm Leibniz (1646 a 1716) teve papel importante quando
observou que “a única maneira de garantir a consistência de nossos raciocínios e torná-los tão
tangíveis quanto os dos matemáticos…” e “se duas pessoas discordarem, basta calcular quem
está certo”. Ele foi o primeiro a propor o sistema binário. Também contribuiu para a
formatação dos princípios da nossa Lógica atual.
Na idade moderna, George Boole (1815 a 1864) foi considerado um dos fundadores da Ciência
da Computação, apesar dos computadores não existirem em sua época. A Álgebra Booleana foi
desenvolvida por ele. Sua formulação utilizava símbolos algébricos (conectivos) como ‘x’, ‘y’,
‘z’, ‘p’, ‘q’, ‘r’ para denotar palavras, frases, ou proposições (representando as expressões por
letras).
Seu sistema algébrico era composto por operações como adição e multiplicação e métodos de
resolução de equações, o que exigia a formulação de uma linguagem simbólica de pensamento.
A Álgebra de Boole permite que uma afirmação (lógica) possa ser expressa matematicamente. O
objetivo da lógica é modelar o raciocínio humano.
126
MÓDULO I - INTRODUÇÃO À INFORMÁTICA
A resolução de uma equação não levaria a uma resposta numérica, mas sim a formulação de
uma conclusão lógica. Nascia, então, a “álgebra do pensamento” conhecida como lógica
binária.
A história das portas lógicas começa em meados da década de 1970 nos Estados Unidos quando
a primeira central telefônica entrou em operação. O emprego das centrais telefônicas
popularizou o uso do telefone. A operação dessas centrais era realizada por telefonistas.
127
MÓDULO I - INTRODUÇÃO À INFORMÁTICA
Sua função era realizar as conexões necessárias entre as ligações. O sistema evoluiu com a
adição de um código que permitia que qualquer telefonista intermediasse a ligação. Com a
popularização, a necessidade de telefonistas cresceu. Essa era terminou com o surgimento do
telefone de discagem direta e a ligação automática. E como conseguimos chegar a essa fase
automatizada? Tudo está relacionado, turma! Vejam a imagem, a seguir, que demonstra essa
cena interessante.
Em 1937, pulamos da Álgebra de Boole aos projetos de circuitos digitais quando um matemático
e engenheiro eletrônico americano chamado Claude Shannon, de apenas 21 anos de idade,
percebeu que havia uma semelhança entre álgebra booleana e circuitos de chaveamento de
telefone. O tema de sua tese de mestrado no Massachusetts Institute of Technology (MIT) era a
aplicação da Álgebra Booleana a sistemas elétricos. Sua tese de mestrado fundou a ciência dos
projetos de circuitos digitais e foi considerada a mais importante do século XX. Sua ideia foi
colocada em prática imediatamente nos projetos de circuitos de chaveamento para telefones
encerrando a era das telefonistas. Em seu trabalho, a exploração dessa característica de
interruptores elétricos criou a lógica e os conceitos mais básicos dos computadores digitais.
Assim, a lógica baseia-se no fato de um transistor realizar a função de uma chave binária (porta
lógica) cujo tempo de comutação (chaveamento) é pequeno (nanossegundos). As portas lógicas
combinam sinais elétricos de baixa intensidade (cerca de 1mA - um miliampere). Os transistores
e diodos são circuitos semicondutores.
Semicondutores são materiais que se encontram em uma posição intermediária, não sendo bons
condutores e nem bons isolantes, mas, ao serem tratados por processos químicos, permitem
controlar a passagem de uma corrente elétrica.
Os transistores são formados por uma Base, um Coletor e um Emissor (veja a Figura 4).
DIODO TRANSISTOR
Fonte: Imagem retirada da internet. Disponível em: Fonte: Imagem retirada da internet.
<https://pt.wikipedia.org/wiki/Diodo_semicondutor>. Disponível em:
Acesso em: 05 de nov.2017. <https://netcomputadores.com.br/p/bc33840-
transistor-npn-25v-800ma/36768>.
Acesso em: 05 de nov.2017.
As Portas lógicas são dispositivos dos circuitos digitais que implementam funções lógicas.
Monteiro (2007) indica que um computador é constituído de elementos eletrônicos, como
resistores, capacitores e, principalmente, transistores. Os computadores atuais são montados
utilizando-se uma combinação de unidades construtivas básicas chamadas de portas lógicas.
Essas unidades são construídas por combinação de transistores e dispositivos semicondutores
auxiliares. Imagine um grande sistema digital “lego” de peças que se encaixam (portas lógicas -
unidade base) formando uma unidade maior chamada microprocessador. A integração dessas
peças básicas formam os Circuitos Integrados (chips ou CIs) com objetivo e função de realizar
uma tarefa específica. A complexidade desses CIs depende do seu nível de integração conforme
descrito na Figura 5.
A Álgebra de Boole indica que uma operação lógica qualquer (ex.: soma ou multiplicação de
dígitos binários) resulta sempre em dois valores: 0 (falso) ou 1 (verdadeiro). Desta forma, dado
um conjunto definido de valores de entrada, é possível determinar previamente todos os
resultados possíveis de uma operação lógica. Esse conjunto de valores organizados previamente
é definido como Tabela Verdade e, segundo Monteiro (2007), cada operação lógica possui sua
própria tabela verdade.
AND NAND
OR NOR
NOT XOR
132
MÓDULO I - INTRODUÇÃO À INFORMÁTICA
a) A porta AND
A porta AND é um circuito que executa a função AND (E), ou seja, executa a multiplicação
binária de duas ou mais variáveis de entrada. Os operadores são binários simples, 0 e 1. A saída
S só será verdadeira (um) quando as entradas “A”, “E”, “B” também forem verdadeiras (um).
De acordo com Monteiro (2007), as portas E (AND) podem ser aplicadas para compor circuitos
para transferência de bits de dados da memória para a CPU, por exemplo, com o objetivo de
garantir que um bit de origem seja o mesmo de destino. É representada pelo operador “.”.
b) A porta OR
A porta OR é um circuito que executa a função OR (OU), ou seja, simula a soma binária de duas
ou mais variáveis de entrada. Os operadores são binários simples, 0 e 1. A saída S será
verdadeira (um) sempre que pelo menos uma das entradas, “A” ou “B”, for verdadeira (um). A
saída S somente será falsa (zero) quando as duas entradas, “A” e “B”, forem falsas (zero).
Segundo Monteiro (2007), as operações lógicas ‘OU’ são muito empregadas em lógica digital,
particularmente nos comandos de decisão de algumas linguagens de programação. É
representada pelo operador “+”.
c) A porta NOT
A porta NOT é um circuito que executa a função NOT (NÃO), ou seja, é aquela que funciona
como um inversor, invertendo ou complementando o estado da variável. Se a entrada A estiver
falsa (zero), a saída será verdadeira (um) e vice-versa.
135
MÓDULO I - INTRODUÇÃO À INFORMÁTICA
d) A porta NAND
A porta NAND é um circuito derivado da porta lógica AND. Ela executa a função AND (E) e
depois tem sua saída invertida, ou seja, equivale à Porta E com saída negada. As operações
lógicas são realizadas em dois passos: primeiro a operação AND, em seguida, o seu resultado é
invertido. Essa porta lógica possui diversas aplicações, sendo utilizada para reduzir a
complexidade e a quantidade de portas lógicas necessárias a um determinado circuito lógico.
136
MÓDULO I - INTRODUÇÃO À INFORMÁTICA
e) A porta NOR
A porta NOR é um circuito derivado da porta lógica OR. Ela executa a função OR (OU) e depois
tem sua saída invertida, ou seja, equivale à Porta OR com saída negada. As operações lógicas
são realizadas em dois passos: primeiro a operação OR, em seguida, o seu resultado é invertido.
Essa porta lógica possui diversas aplicações, sendo utilizada para reduzir a complexidade e a
quantidade de portas lógicas necessárias a um determinado circuito lógico.
137
MÓDULO I - INTRODUÇÃO À INFORMÁTICA
f) A porta XOR
A porta XOR é um circuito que executa função de fornecer a saída verdadeira (um) quando as
variáveis de entrada forem diferentes entre si, ou seja, a saída só será verdadeira (um) quando
apenas uma das entradas também for verdadeira (um). A sua implementação necessita de
diversas portas lógicas. A porta XOR só pode ter duas variáveis de entrada obrigatoriamente. Os
operandos são binários simples (0 e 1).
Segundo Monteiro (2007), a porta XOR tem como principal função a verificação de igualdade,
tendo inúmeras aplicações como, por exemplo, testar se duas palavras de dados são iguais. É
uma porta bastante versátil. É representada pelo operador “ ”.
138
MÓDULO I - INTRODUÇÃO À INFORMÁTICA
Considerando que um circuito lógico pode ser composto por um conjunto de diversas portas
lógicas suas tabelas verdade poderão também ser compostas por inúmeras entradas e saídas,
sendo estas representadas pelas suas respectivas equações booleanas.
139
Fonte: Adaptada de Monteiro (2007)
MÓDULO I - INTRODUÇÃO À INFORMÁTICA
140
MÓDULO I - INTRODUÇÃO À INFORMÁTICA
Monteiro (2007) afirma ainda que existe outra categoria de circuitos que combina portas
lógicas, denominada circuitos sequenciais, os quais, além de possuir portas, contêm elementos
de armazenamento (uma espécie de memória).
141
MÓDULO I - INTRODUÇÃO À INFORMÁTICA
Vamos refletir?
Saiba mais!
Acesse:
http://www.clubedohardware.com.br/artigos/outros/introdu%C3%A7%C3%A3o-
%C3%A0s-portas-l%C3%B3gicas-r34573/
142
MÓDULO I - INTRODUÇÃO À INFORMÁTICA
Vamos rever?
A lógica é uma palavra que vem do grego “logos” e pode ser compreendida como
razão, discurso ou linguagem. Aristóteles foi considerado o pai da lógica.
Claude Shannon percebeu que havia uma semelhança entre álgebra booleana e
circuitos de chaveamento de telefone e propôs a aplicação da Álgebra Booleana a
sistemas elétricos.
144
MÓDULO I - INTRODUÇÃO À INFORMÁTICA
Vamos rever?
145
MÓDULO I - INTRODUÇÃO À INFORMÁTICA
Saiba mais!
Sites indicados:
1. Aplicativo para Android para Simular Lógica no Celular (Logic Simulator Pro)
Disponívelem:<https://apkpure.com/br/logic-simulator-pro/com.KAJORY.Logicsimul
atorpro>. Acesso em: 03 de nov.2017.
2. Aplicativo para Android para Simular Lógica no Celular (Smart Logic Simulator)
Disponível em:
<https://play.google.com/store/apps/details?id=com.tomaszczart.smartlogicsimula
tor&hl=pt_BR>. Acesso em: 03 de nov.2017.
146
MÓDULO I - INTRODUÇÃO À INFORMÁTICA
Saiba mais!
Audiovisuais indicados:
147
MÓDULO I - INTRODUÇÃO À INFORMÁTICA
Questões de autoaprendizagem
148
MÓDULO I - INTRODUÇÃO À INFORMÁTICA
Questões de autoaprendizagem
149
MÓDULO I - INTRODUÇÃO À INFORMÁTICA
Glossário
● Assembly - é uma notação legível por humanos para o código de máquina que
uma arquitetura de computador específica usa, utilizada para programar códigos
entendidos por dispositivos computacionais, como microprocessadores e
microcontroladores. O código de máquina, que é um mero padrão de bits,
torna-se legível pela substituição dos valores em bruto por símbolos chamados
mnemônicos.
● Chip - É uma pastilha de silício onde ficam os circuitos integrados compostos por
milhões de componentes eletrônicos e essenciais aos computadores.
● Dado - é tudo aquilo que sozinho, pode não significar nada. Por exemplo: 5 m, 10
kg, 20 km/h. Mas se dissermos “uma passarela tem 5m de altura”, isso pode se
constituir numa informação para um motorista de caminhão, que evitaria trafegar
naquela via sabendo que seu caminhão tem uma altura maior. Já a informação
subentende dados organizados segundo uma orientação específica para o
atendimento ou emprego de uma pessoa ou grupo que os recebe.
150
MÓDULO I - INTRODUÇÃO À INFORMÁTICA
Glossário
● Interface - Parte do software que interage com o usuário para receber comandos
e transmitir informações.
151
MÓDULO I - INTRODUÇÃO À INFORMÁTICA
Glossário
152
MÓDULO I - INTRODUÇÃO À INFORMÁTICA
Glossário
● UC - Unidade de Controle.
153
MÓDULO I - INTRODUÇÃO À INFORMÁTICA
Referências
MORIMOTO, Carlos E. Hardware, o Guia Definitivo. Porto Alegre: GDH Press e Sul
Editores, 2007.
154
MÓDULO I - INTRODUÇÃO À INFORMÁTICA
Referências
155
MÓDULO II - LÓGICA DE PROGRAMAÇÃO
Caro leitor,
O conteúdo está dividido em quatro unidades, que abordam os seguintes temas: a primeira
unidade apresenta uma introdução às linguagens de programação, trata da elaboração do
raciocínio lógico e da elaboração e representação de algoritmos e aborda também conceitos
fundamentais da programação. Nessa unidade, vamos trabalhar também com o desenvolvimento
de algoritmos utilizando o Visual G (português estruturado) apoiado na Linguagem de
Programação C.
Por fim, na quarta unidade, aprofundaremos um pouco mais no emprego da Linguagem C. Vamos
também, conhecer um paradigma de programação diferente e inovador: a Programação
Orientada a Objetos, com apoio da Linguagem C++, uma extensão da Linguagem C que
implementa este novo paradigma.
O nosso material está composto por exercícios dinâmicos que o auxiliarão na memorização e no
aprendizado dos conteúdos estudados.
Introdução às Linguagens de
Programação e Raciocínio Lógico
159
MÓDULO II - LÓGICA DE PROGRAMAÇÃO
Vamos começar? Nosso objetivo, neste tópico, é fazer uma introdução sobre os aspectos básicos
do processo de programação, abordando conceitos fundamentais e técnicas importantes para a
escrita de algoritmos.
A área da tecnologia da informação promove um certo vislumbre nas pessoas que não a
conhecem profundamente. Esse encanto está presente na realidade de grande parte da
população mundial que constata, a cada dia, a importância dos recursos tecnológicos
(comunicação e informática) como ferramentas que ampliam a nossa qualidade de vida (Figura
1).
No entanto, a quantidade de profissionais que se envolvem com esta área não consegue suprir a
demanda mundial da área de TI, especialmente pelo crescente uso e evolução dos recursos
tecnológicos.
160
MÓDULO II - LÓGICA DE PROGRAMAÇÃO
Antes de começar, todos devem estar se perguntando: por que aprender a programar? Você
considera ter uma boa resposta para essa pergunta? Reflita um pouco.
É claro que você deve ter dito que é porque escolheu ser um profissional de TI ou programador!
Eu entendo. Porém, agora que pensou um pouco sobre o tema, vamos assistir a um vídeo no
qual e personalidades famosas respondem a essa pergunta, possibilitando que você entenda
essa necessidade de maneira mais ampla!
Acesse:
https://www.youtube.com/w
161 atch?v=mHW1Hsqlp6A
MÓDULO II - LÓGICA DE PROGRAMAÇÃO
1.1.1 Processamento de Dados
O ato de programar um computador é análogo ao processo que realizamos para resolver um
problema em nosso dia a dia. Também recebemos dados por meio de nossos “periféricos de
entrada” (percepções sensoriais - olhos, ouvido, tato etc.), realizamos o processamento desses
dados (auxiliados pela nossa memória e processador - cérebro) controlando, comparando ou
deduzindo para chegar a um resultado que exibiremos por meio de um de nossos “periféricos de
saída” (olhos, rosto - expressões, boca - fala, mãos - tato ou gestos). Observe a Figura 2.
Processador
UCP
Dispositivo Dispositivo
de Entrada Escrita de Saída
Leitura
Percepção
das Entrada
Saída
impressões Processo de Impressora,
(Imagem Pixabay gratuita -
sensoriais Pensamento Teclado, Memória vídeo,
atribuição não requerida)
mouse, Dados disco, etc.
etc.
Com o auxílio da nossa Saída do Controle
memória executamos resultado dos Endereço e
diversos processos, processos do conteúdo
como controlar, pensamento
comparar, combinar,
deduzir, etc.
162 Fonte: Elaborada pelo autor.
MÓDULO II - LÓGICA DE PROGRAMAÇÃO
Vamos refletir?
Vamos entender cada etapa:
163
MÓDULO II - LÓGICA DE PROGRAMAÇÃO
1.1.2 Programa e Programador
Os programas computacionais são sequências de instruções escritas em uma linguagem de
programação a serem executadas por um computador que procura atingir um objetivo (resolver
um problema) ou ajudar seu usuário a atingi-lo.
Por exemplo: como poderá ser resolvido o problema de venda existente em uma grande
indústria de bebidas no Brasil? O que é necessário? Quais os dados de entrada? O que precisamos
processar? Qual será o resultado esperado?
Podemos considerar que a Lógica é a ciência das leis ideais do pensamento e a arte de
aplicá-los à pesquisa e à demonstração da verdade.
Você sabia?
“A lógica consiste em um esquema sistemático que define as interações
de sinais no computador que automatiza o processamento de dados, com
critério e princípios formais do raciocínio e pensamento” (MANZANO,
2003 p.3).
Para uma definição não tão técnica nesta área, a lógica poderia ser definida como “a
ciência que estuda as leis e critérios de validade que regem o pensamento e a
demonstração, sendo ela a ciência de princípios formais do raciocínio” (MANZANO,
2003 p.3).
165
MÓDULO II - LÓGICA DE PROGRAMAÇÃO
Vamos refletir?
Como vimos a lógica estuda o pensamento e, portanto, está ligada ao processo humano do
raciocínio. Assim, temos lógica na linguagem falada e escrita, na matemática, nas relações
humanas etc. O objetivo principal da Lógica de Programação é demonstrar técnicas para
resolução de problemas e, consequentemente, para a automatização de tarefas. Como
transformar um problema descrito na linguagem natural em um processo automatizado?
Vamos descobrir…
Saiba mais!
Você está numa cela onde existem duas portas, cada uma vigiada por um guarda.
Existe uma porta que dá para a liberdade e outra para a morte.
Você está livre para escolher a porta que quiser e por ela sair.
Poderá fazer apenas uma pergunta a um dos dois guardas que vigiam as portas. Um dos
guardas sempre fala a verdade, e o outro sempre mente e você não sabe quem é o
mentiroso e quem fala a verdade. Qual pergunta você faria e para quem?
1.1.4 Algoritmo
Uma das principais técnicas de representação de raciocínio nesta área da Lógica é conhecida
como algoritmo. Esta técnica possibilita uma representação simples e clara o suficiente para
compreender a lógica racional a ser empregada na solução do problema existente.
167
MÓDULO II - LÓGICA DE PROGRAMAÇÃO
Uma mesma tarefa pode ser realizada por diferentes algoritmos que utilizam conjuntos
diferenciados de instruções, levando mais ou menos tempo, ocupando mais ou menos memória
ou ainda com mais ou menos esforço. A diferença entre os algoritmos pode estar relacionada à
complexidade computacional aplicada que depende de estruturas de dados adequadas ao
algoritmo.
Você Sabia?
“Algoritmos são regras formais para a obtenção de um resultado ou da
solução de um problema, englobando fórmulas de expressões
aritméticas” (MANZANO, 2000, p.6).
“Algoritmo é uma sequência de passos que visa atingir um objetivo bem definido”
(FORBELLONE, 2000, p.3).
“Algoritmo é a descrição de uma sequência de passos que deve ser seguida para a
realização de uma tarefa” (ASCENCIO, 2002, p.2).
168
MÓDULO II - LÓGICA DE PROGRAMAÇÃO
Vejamos um exemplo:
O algoritmo 1 para se vestir pode especificar que você vista primeiro as meias e os sapatos
antes de vestir a calça! Já o algoritmo 2 especifica que você deve primeiro vestir a calça e
depois as meias e os sapatos.
Fica claro que o algoritmo 1 é mais difícil de executar que o algoritmo 2 apesar de ambos
levarem ao mesmo resultado. Concorda?
Outro aspecto importante é a complexidade associada à abstração. Problemas que possuem alto
grau de abstração exigem muita complexidade na construção de um algoritmo capaz de ser
automatizado por um computador.
Saiba mais!
Você já pensou em um algoritmo para ordenar números?
Acesse:
https://pt.wikipedia.org/wiki/Algoritmo
169
MÓDULO II - LÓGICA DE PROGRAMAÇÃO
Fazer um sanduíche
1º Pegar um pão
2º Cortar o pão ao meio 3º Pegar a
maionese
4º Passar maionese entre as fatias de
pão
5º Pegar alface e tomate 6º Cortar alface
e tomate
7º Colocar alface e tomate entre os pães
8º Pegar um hambúrguer
9º Fritar o hambúrguer
10º Colocar o hambúrguer entre as fatias
11º Juntar as duas fatias do pão
171
MÓDULO II - LÓGICA DE PROGRAMAÇÃO
b)Cada um de nós poderia criar a sua receita de fazer um sanduíche adequando a sua
maneira e gosto. Todos nós faríamos um sanduíche, mas a receita (algoritmo) de cada um
provavelmente seria diferente. Todos nós atingiríamos o objetivo, porém com algoritmos
diferentes.
c)Podem existir vários algoritmos para solucionar um problema, alguns mais rápidos, outros
com mais ou menos etapas, ou ainda mais seguros. Tudo dependerá dos critérios definidos
para essa avaliação de “qualidade dos algoritmos”.
172
MÓDULO II - LÓGICA DE PROGRAMAÇÃO
Atividade
1) Tarefa: uma pessoa precisa colocar um carro em movimento. Quais as ações necessárias
para realizar a tarefa e em qual sequência? Vamos construir esse algoritmo iniciando pela
descrição da sequência de passos necessários para resolver o problema.
2) É possível perceber que o nível de abstração do problema é alto. Não temos todas as
informações (requisitos) sobre o problema. Mas mesmo assim, a título de exemplo, vamos
começar a imaginar o que precisamos fazer. Uma pergunta intrigante que exemplifica a
falta de requisito (informações iniciais sobre o problema): estamos fora ou dentro do carro?
173
MÓDULO II - LÓGICA DE PROGRAMAÇÃO
As ações primitivas são aquelas que não podem ser refinadas (divididas, ou melhor, descritas)
em outras ações com mais detalhes (diminuir o nível de abstração).
As ações não primitivas, pelo contrário, são aquelas que podemos detalhar mais, ou que ainda
cabe alguma correção ou ajuste que melhore o nível de abstração (ações que ainda estão com o
nível de abstração muito alto e podem se tornar mais claras ou exatas). Representar um
algoritmo por meio da linguagem natural não é algo fácil. Na prática, ela é muito pouco usada,
pois permite interpretações equivocadas, ou então, dá margem a imprecisões e ambiguidades.
Por exemplo, a instrução “colocar o câmbio em ponto morto” no algoritmo está sujeita a
interpretações diferentes por pessoas distintas. Nas atividades 1 e 2, vamos ver uma instrução
mais precisa.
Atividade
1) Como podemos refinar mais a ação em destaque?
início
Refinamento consiste | Entrar no carro
em detalhar um - Ajustar banco e espelhos retrovisores
passo…
| Colocar o cinto de segurança
- Colocar o câmbio em “ponto morto”
| Ligar o carro
- Colocar o câmbio na primeira marcha
| Pisar no acelerador
- Soltar o freio de mão
| Soltar a embreagem devagar
174 fim
MÓDULO II - LÓGICA DE PROGRAMAÇÃO
Atividade
2) A ação em destaque pode ser melhor detalhada por um conjunto de
passos que descrevem melhor aquela ação.
início
| Entrar no carro
- Ajustar banco e espelhos retrovisores
Refinamento | Colocar o cinto de segurança
consiste em - Colocar o câmbio em “ponto morto”
detalhar um passo… | |Pisar na embreagem
- - Pegar o câmbio
| | Colocar em “ponto morto”
- - Soltar a embreagem
| Ligar o carro
- Colocar o câmbio na primeira marcha
| Pisar no acelerador
- Soltar o freio de mão
| Soltar a embreagem devagar
fim
175
MÓDULO II - LÓGICA DE PROGRAMAÇÃO
● Definir os dados que essencialmente deverão ser informados pelo usuário para que o
processamento seja realizado com sucesso (dados de entrada);
Essa transição também pode ser chamada de tradução, pois somente efetuará mudança na
forma de descrever o raciocínio a ser implementado no computador de uma linguagem de
representação para uma linguagem de programação.
176
MÓDULO II - LÓGICA DE PROGRAMAÇÃO
Vamos refletir?
Algoritmo
T
R Linguagem de
A programação
D
(Imagem Pixabay gratuita - U
atribuição não requerida)
Ç
Ã
O
Programa
177
MÓDULO II - LÓGICA DE PROGRAMAÇÃO
ANÁLISE
Nesta etapa, estuda-se o problema, buscando sua completa compreensão, por meio da
correta identificação da entrada, do processamento e da saída dos dados.
PROJETO:
178
MÓDULO II - LÓGICA DE PROGRAMAÇÃO
CODIFICAÇÃO:
VERIFICAÇÃO
179
MÓDULO II - LÓGICA DE PROGRAMAÇÃO
Vamos rever?
181
MÓDULO II - LÓGICA DE PROGRAMAÇÃO
Sites indicados
4) A hora do código:
https://code.org/
https://studio.code.org/s/20-hour
Audiovisuais indicados
182
MÓDULO II - LÓGICA DE PROGRAMAÇÃO
Questões de autoaprendizagem
2) Você está em uma escola que possui 5 salas de aula com lâmpadas que podem estar
queimadas. Seu projeto é fazer um algoritmo para um robô ir em cada sala da escola
(sala de aula de 1 a 5) e trocar a lâmpada que estiver queimada. Observe que o robô
já está no corredor que dá acesso às salas e que em uma caixa ao seu lado estão as 5
lâmpadas novas. Construa um algoritmo em linguagem natural para “o robô trocar as
lâmpadas queimadas da escola”. Compare com o algoritmo do seu colega. Os dois
resolvem o problema? O que eles têm de diferente?
183
MÓDULO II - LÓGICA DE PROGRAMAÇÃO
1.2 Representação do Raciocínio
Neste tópico denominado Representação do Raciocínio, vamos aprender a distinguir entre as
diversas representações de algoritmos existentes e como fazemos para representar o nosso
raciocínio empregando uma dessas formas. Depois vamos olhar com um pouco mais de detalhes
como se elabora um algoritmo. Finalizando, vamos explorar as linguagens de programação
existentes.
Bem, você deve se lembrar do filme “Harry Potter”, no qual o mágico Dumbledore, utilizando
sua varinha mágica retirava pensamentos de sua cabeça e os colocava na “penseira”. Após
colocar a varinha na têmpora e tirar um fio prateado, colocam-se os pensamentos na penseira e
eles tomam forma. Mas elaborar um algoritmo a partir de um raciocínio lógico é assim? É claro
que não! Vamos dar uma olhada em como podemos fazer isso então...
1.2.1 Representação
A correta compreensão do que cada indivíduo pensa pode consistir em um grande desafio para
pessoas que precisam entender os esclarecimentos ou explicações elaboradas por este indivíduo.
Muitas vezes, um especialista tem dificuldade de explicar seu raciocínio para que outras pessoas
possam entendê-lo. Aqui está uma questão chave na programação. Transferir o raciocínio que
elaboramos para uma forma de representação na qual outras pessoas possam compreender.
No entanto, quase todo mundo já passou por uma situação similar, em que foi necessário
explicar o que se estava pensando. Com certeza, você deve ter tentado expor suas ideias da
forma mais fiel possível, mas nem sempre as pessoas entendem adequadamente o que você
quer apresentar. Existem várias maneiras diferentes de expor nossos pensamentos para que
outras pessoas compreendam e possam refletir conosco.
A elaboração de algoritmo, para área de Tecnologia, procura justamente realizar esse tipo de
compartilhamento de pensamentos e ideias antes do desenvolvimento do programa
computacional (da codificação propriamente dita). Essa habilidade de exposição de ideias é
exercitada por todos os envolvidos nessa área, sendo um dos principais conteúdos abordados
por esta disciplina. Essa importante habilidade, fundamental aos responsáveis pelo
desenvolvimento de programas, também é conhecida como Representação do Raciocínio Lógico
ou de Dados.
A elaboração do algoritmo descreve os dados e as suas manipulações. Essa descrição pode ser
feita de diversas formas e por meio de técnicas diferentes que representarão a sequência dos
passos (ou etapas) a serem realizados pela execução do algoritmo. Essa representação da
sequência lógica envolvida corresponde a um dos principais pontos de estudo e prática desta
disciplina.
Vejamos um exemplo:
Cada figura do exemplo acima tem um significado. Perceba que a coluna da esquerda
(fluxograma) representa (equivale) a coluna da direita (português estruturado). A seguir, um
pequeno exemplo de um conjunto básico de figuras e seus significados para representação de
algoritmos.
MÓDULO II - LÓGICA DE PROGRAMAÇÃO
FIGURA SIGNIFICADO
188
MÓDULO II - LÓGICA DE PROGRAMAÇÃO
Entre os diversos métodos existentes para esse tipo de representação, o Diagrama de Chapin é
um dos menos utilizados atualmente, principalmente porque exige bastante atenção do
programador na representação do seu raciocínio.
MÓDULO II - LÓGICA DE PROGRAMAÇÃO
Por isso, é tão necessária a incorporação de normas e regras que permitam a representação
organizada e eficiente da solução desejada, indicando sempre, com clareza e precisão, o que
realmente o computador deve fazer. Por meio dessa última representação de raciocínio
(português estruturado), alia-se a facilidade no uso da linguagem natural do indivíduo com a
técnica de desenvolvimento estruturado. Apesar disso, essa junção, por si só, ainda não atinge
automaticamente os objetivos almejados, mas preconiza uma ajuda sistemática para o alcance
desse objetivo. Sua aplicação ainda conta com o esforço e a disciplina incessante na busca da
simplicidade e da clareza, que fornecerão facilidades inestimáveis à manutenção e à
modificação evolutiva do algoritmo.
Sequencial:
As instruções existentes no algoritmo são executadas uma após a outra, respeitando
sempre a sequência linear de cima para baixo.
Seletiva:
Exerce o controle sobre a sequência de instruções a serem executadas, por meio do
resultado de um teste ou verificação baseada na lógica convencional, conhecida
também como condicional.
Repetitiva:
Por meio de um teste, ou verificação lógica condicional, uma instrução ou um
conjunto de instruções, é executado repetidamente (mais de uma vez), conforme
discriminado no raciocínio lógico proposto. Essa estrutura ainda é conhecida como
191 laço ou looping.
MÓDULO II - LÓGICA DE PROGRAMAÇÃO
Vamos refletir?
192
MÓDULO II - LÓGICA DE PROGRAMAÇÃO
O algoritmo auxilia o desenvolvimento dos programas, porque por meio dele os programadores
representam a solução proposta para ser analisada e testada, antes de ser empregada em uma
atividade. Quando um algoritmo está finalizado, ou seja, está pronto, resta apenas transformá-lo
em um programa computacional, respeitando toda lógica racional elaborada e já avaliada para a
solução do problema em questão. É claro que didaticamente aprenderemos primeiro em português
estruturado utilizando VISUALg e depois, em um segundo momento, faremos a codificação para
uma ou mais linguagens de programação.
193
MÓDULO II - LÓGICA DE PROGRAMAÇÃO
194
MÓDULO II - LÓGICA DE PROGRAMAÇÃO
Saiba mais!
Acesse: https://becode.com.br/principais-linguagens-de-programacao/
195
MÓDULO II - LÓGICA DE PROGRAMAÇÃO
Vamos rever?
Sites indicados
Audiovisuais indicados
198
MÓDULO II - LÓGICA DE PROGRAMAÇÃO
Questões de autoaprendizagem
199
MÓDULO II - LÓGICA DE PROGRAMAÇÃO
Neste tópico, denominado Conceitos Fundamentais, vamos compreender as regras básicas para
a construção de algoritmos. Precisamos conhecer a estrutura básica de um algoritmo, os tipos
de dados que podemos empregar, aprender a definir identificadores de variáveis e constantes.
Depois vamos trabalhar os comandos mais básicos de entrada e saída, empregar operadores de
atribuição, aritméticos, relacionais e lógicos. É hora de colocar a mão no código!
Cuidado com os alinhamentos das suas principais palavras reservadas e pontuações existentes
em cada linha descritiva, pois, no algoritmo em português estruturado, essa endentação correta
é obrigatória.
Vejamos um exemplo:
O algoritmo tem que ter algoritmo “modelo geral”
início e um fim definidos. // Síntese
// Objetivo: <descrição resumida do que o algoritmo descrito
algoritmo
abaixo realiza>
------------ // Entrada: <valores lidos ou coletados pelos recursos de entrada de
------------ dados>
------------ // Saída: <valores apresentados pelos recursos de saídas de dados>
//
fimalgoritmo
Declarações
var
<constantes>
<variáveis>
<subprogramas>
inicio
<bloco de instruções>
201 fimalgoritmo
MÓDULO II - LÓGICA DE PROGRAMAÇÃO
202
MÓDULO II - LÓGICA DE PROGRAMAÇÃO
●Sempre iniciado pela palavra reservada Síntese como comentário, ou seja, contendo
// (barra barra) antes e iniciando este primeiro bloco de representação em português
estruturado.
●A Síntese é formada por três itens relevantes ao processamento de dados, sendo eles o
Objetivo (descreve, resumidamente, o que o algoritmo faz), a Entrada (indica,
resumidamente, todas as entradas de dados para este algoritmo) e a Saída (indica,
sucintamente, todas as saídas de dados fornecidas por este algoritmo).
●Este bloco termina na palavra reservada início e pode não conter nenhuma instrução de
acordo com a necessidade da solução proposta no algoritmo.
203
MÓDULO II - LÓGICA DE PROGRAMAÇÃO
●Inicia a partir da palavra reservada início, sendo encerrado somente com a palavra
reservada fimalgoritmo.
●Contém todas as instruções ou comandos que descrevem o que o algoritmo deve fazer
(ações ou processamentos realizados pelo algoritmo proposto).
●Este bloco terá no mínimo uma instrução, caso contrário, o algoritmo não existiria, pois
não teria finalidade alguma.
Toda linguagem de programação possui palavras reservadas que fazem parte de sua sintaxe.
Assim em português estruturado temos algumas palavras que não podem ser usadas para outro
propósito em um algoritmo que não seja aquele previsto nas regras de sintaxe. A palavra
fimalgoritmo, por exemplo, é uma palavra reservada e aparece sublinhada e destacada em azul
no VISUALg.
Os comentários são linhas iniciadas por duas barras ( // ) que são ignoradas pelo interpretador,
ou seja, elas podem conter qualquer informação depois das duas barras até o final da linha que
não serão executadas pelo programa. Utilizamos os comentários para adicionar ao algoritmo
uma referência, documentação ou explicação adicional que ajude a facilitar o entendimento de
quem estiver lendo o código.
No exemplo abaixo as linhas de comentários, iniciadas com duas barras, estão descritas na cor
verde:
algoritmo “semnome”
// Função :
// Autor :
// Data : 19/11/2017
// Seção de Declarações
204
MÓDULO II - LÓGICA DE PROGRAMAÇÃO
1.3.2 Tipos de Dados
Para que um computador possa realizar um determinado processamento, normalmente, é
necessário que ele tenha acesso a informações, ou seja, dados para realizar o processamento.
Os dados, ou informações, em algoritmos estão delimitados em quatro tipos básicos de dados:
inteiros, reais (com casas decimais), caracteres e dados lógicos.
verdadeiro/true (T)
Corresponde ao conjunto de valores
possíveis na lógica convencional
falso/false (F)
Lógico (booleana), ou seja, FALSO ou
VERDADEIRO. Esse tipo de dado só
apresenta um entre esses dois valores,
sendo estes mutuamente exclusivos.
205
MÓDULO II - LÓGICA DE PROGRAMAÇÃO
1.3.3 Identificadores
● todo identificador deve começar com o primeiro carácter sendo alfabético (pertence ao
alfabeto) em letra minúscula;
● os demais caracteres do identificador podem ser letras do alfabeto (“a, b, c,...”),
caracteres numéricos (“1, 2, 3,...”) ou o caractere underline (linha baixa “_”);
● nenhum identificador pode ser igual a uma palavra reservada;
● Na sintaxe do Português Estruturado, não há diferença entre letras maiúsculas de
● minúsculas (NOME é o mesmo que noMe);
● nomes de variáveis devem ter no máximo 127 caracteres;
● nenhum caractere especial pode fazer parte do identificador, inclusive o espaço em
branco entre palavras, sendo a única exceção o underline;
● identificadores compostos devem possuir o primeiro carácter da segunda palavra ou
expressão que compõe o identificador em letras maiúsculas, sendo as demais sempre em
minúsculas (valorTotal ou receitaArrecadadaMensal).
Exemplos:
Identificadores válidos:
IDADE, FONE, TIPO_FILHO, IdadeAluno, SOMA1, Estado_Civil
Identificadores inválidos:
3Pais, Tipo Telefone, PARA, algoritmo, end/bairro
206
MÓDULO II - LÓGICA DE PROGRAMAÇÃO
Observe que as palavras “PARA e algoritmo” são identificadores inválidos. Mas porque isso
ocorre? É simples! Os dois são inválidos, pois são palavras reservadas da linguagem! Veja a
seguir outras palavras que você não deve utilizar como identificadores de variáveis ou
constantes.
PALAVRAS RESERVADAS
1.3.4 Variáveis
Para a declaração de uma variável, utilizamos as regras dos identificadores. Observe, a seguir,
o exemplo de criação (declaração) da variável denominada idade:
Outro detalhe importante é que podem ser criadas mais de uma variável na mesma instrução
(separadas por vírgula). Esta forma de declaração múltipla se aplica apenas para um mesmo
tipo de variável.
1.3.5 Constantes
Uma constante consiste no recurso ou objeto computacional que pode ser criado pelo
programador para armazenar um único dado de um tipo definido. Uma constante é um espaço
reservado na área de memória do computador (um endereço de memória) que armazenará os
dados de acordo com o tipo de dado definido em sua declaração. O valor guardado em uma
constante não sofre alteração ao longo do algoritmo. Seu valor só poderá ser atribuído uma
única vez no início do bloco de instruções do algoritmo, não podendo ser mais alterado durante
toda execução.
● Numérica: representada por valores reais ou inteiros, em que o ponto ‘.’ separa a parte
inteira da decimal, por exemplo: -0.59; 2.0; 0; -34; 597; 10.
// declaração da constante
equipe : inteiro // CONSTANTE
A constante equipe é criada como uma variável, porém, recebe a indicação de que é uma
constante em seu algoritmo (é uma convenção adotada). Isso acontece por meio da descrição
// CONSTANTE para indicar que esse recurso computacional é uma constante e que só receberá
um único valor no início do algoritmo. Isso é uma convenção que indicará ao programador que o
valor da constante não deverá mudar durante toda sua execução, pois o VISUALg que vamos
utilizar não implementa constantes. Assim, esse recurso computacional se mantém constante
durante todo processo de execução do seu algoritmo.
Como nosso algoritmo pode se comunicar com o usuário? Como podemos receber e exibir
dados? Para essa finalidade, empregaremos as instruções de entrada e saída.
MÓDULO II - LÓGICA DE PROGRAMAÇÃO
Instrução Leia
Para receber os dados, por meio do teclado (um dispositivo de entrada), vamos utilizar a
instrução “leia”. Ela recebe os dados do usuário e armazena em uma variável (em um endereço
de memória) para que possamos depois utilizar para processamentos. No exemplo abaixo, o
algoritmo declara duas variáveis e depois usa um comando “leia” para receber do usuário os
dois valores. Observe que a leitura dos dados acontece somente depois das duas variáveis serem
declaradas.
210
MÓDULO II - LÓGICA DE PROGRAMAÇÃO
Instrução Escreva
Mas como exibir um resultado recebido ou mostrar um cálculo realizado (mostrar uma saída
depois de um processamento)? Simples! Vamos empregar a instrução “escreva”. Essa instrução
exibe na tela do computador uma mensagem definida pelo USUÁRIO ou o valor armazenado em
uma variável.
Exemplos:
escreva (“Temperatura:” , temperatura) // mensagem e
variável escreva (temperatura) // somente uma variável
A instrução escreva por exibir uma mensagem ao usuário concatenada (agrupada) com o valor
da variável e, para isso, utilizamos a mensagem entre “ ” seguida por uma vírgula e o
identificador da variável.
211
MÓDULO II - LÓGICA DE PROGRAMAÇÃO
Observe alguns exemplos válidos dessa concatenação:
É importante lembrar que sempre que utilizamos uma variável em um algoritmo, ela precisa
inicialmente ser declarada, ou, as instruções leia e escreva vão gerar um erro de execução.
212
MÓDULO II - LÓGICA DE PROGRAMAÇÃO
Observe que temos três quadros na imagem anterior. O primeiro contém o código do algoritmo. Os dois
abaixo indicam as variáveis e seus valores durante a execução do código e a tela de execução do
algoritmo. Vamos entender a execução do algoritmo. O algoritmo começa com a declaração das
variáveis temperatura e dia.
(1)A primeira instrução escreva orienta a ação do usuário na operação do algoritmo, por meio da
exibição de uma mensagem fixa (texto constante - “Informe a temperatura (graus):” ), sempre
descrita entre aspas (“ “).
(2)A primeira instrução leia recebe do usuário o valor da temperatura digitado que será o lido e
armazenado na memória do computador por meio da variável temperatura. Para a temperatura, o
usuário digitou o valor 20.
(3)A segunda instrução escreva orienta a ação do usuário na operação do algoritmo, por meio da
exibição de uma mensagem fixa (texto constante - “Informe o dia (numero):” ), sempre descrita entre
aspas (“ “).
(4)A segunda instrução leia recebe do usuário o valor do dia digitado que será o lido e armazenado na
memória do computador por meio da variável dia. Para o dia, o usuário digitou o valor 11.
(5)A terceira instrução escreva devolve uma mensagem para o usuário concatenada com as duas
variáveis dia e temperatura, por meio da exibição de uma mensagem fixa entre aspas (texto
constante) intercalado com as variáveis por meio da vírgula. Como resultado final da execução temos:
213
MÓDULO II - LÓGICA DE PROGRAMAÇÃO
1.3.7 Operadores
Para que um algoritmo possa indicar ao computador como processar dados, é necessário utilizar
operadores para os cálculos, relações e decisões.
Operadores Aritméticos
As operações aritméticas mais comuns são representadas pelos símbolos (ou caracteres)
relacionados na tabela a seguir.
5 ^ 2 // eleva 5 ao quadrado
214
MÓDULO II - LÓGICA DE PROGRAMAÇÃO
Operadores Relacionais
Exemplos:
215
MÓDULO II - LÓGICA DE PROGRAMAÇÃO
Operadores Lógicos
Os operadores lógicos são empregados para avaliar expressões e também resultam em valores
lógicos VERDADEIRO (V) ou FALSO (F).
Exemplos:
Vamos refletir?
Sempre que utilizarmos os operadores lógicos ou relacionais será
necessário relembrar a tabela verdade. Ela apresenta os resultados da
aplicação dos operadores lógicos (saídas) conforme os valores
dos operadores envolvidos (entradas).
216
MÓDULO II - LÓGICA DE PROGRAMAÇÃO
Tabela Verdade
Entrada (A) Entrada (B) (A) e (B) (A) ou (B) NÃO (A) NÃO (B)
V V V V F F
V F F V F V
F V F V V F
F F F F V V
217
MÓDULO II - LÓGICA DE PROGRAMAÇÃO
Exemplos:
// modularização é a divisão de uma expressão em partes com o uso de parênteses
(2+5>4) e (3<>3) //resulta FALSO, pois VERDADEIRO e FALSO resulta FALSO.
(2 + 2)/2 // resulta 2
2 + 2/2 // resulta 3
Operador de Atribuição
218
MÓDULO II - LÓGICA DE PROGRAMAÇÃO
Exemplos:
Vamos refletir?
Saiba mais!
Acesse: https://www.devmedia.com.br/programacao-por-onde-comecar/37391
219
MÓDULO II - LÓGICA DE PROGRAMAÇÃO
Vamos rever?
Sites indicados
1) BLOG DO SMITH
https://andreysmith.wordpress.com/category/informatica/introducao-a-ciencia-da-computa
cao/
Audiovisuais indicados
222
MÓDULO II - LÓGICA DE PROGRAMAÇÃO
Questões de autoaprendizagem
1) A partir do que estudamos neste tópico elabore um algoritmo “Olá mundo” em VISUALg.
Como ele seria? Tente fazer sozinho primeiro e, somente depois, clique no link da
resposta.
O que é uma variável e qual a sua importância para um algoritmo (programa)? De que
forma um computador armazena uma variável?
4) Algoritmo da soma de dois números. A partir da descrição das linhas abaixo, implemente
em VISUALg o algoritmo que realiza a soma de dois números. Tente fazer sozinho primeiro
e, somente depois, clique no link da resposta.
223
MÓDULO II - LÓGICA DE PROGRAMAÇÃO
Questões de autoaprendizagem
Linha 03: Declaração das variáveis inteiras “a” e “b” que são utilizadas para
guardar os valores inseridos pelo usuário, enquanto o “resultado”, como o
nome sugere, irá receber a soma deles;
Linha 07: Utilizamos o operador de atribuição <-. Esse operador atribui a soma
de “a” e “b” à variável “resultado”. Essa é a fase de processamento dos dados
de entrada;
Linha 08: Para finalizar o algoritmo, temos a amostragem dos dados para o
usuário. Nesse caso, utilizamos o verbo Escrever para mostrar essa ação (exibir
na tela o resultado);
224
MÓDULO II - LÓGICA DE PROGRAMAÇÃO
1.4 Conceitos Fundamentais de Programação
1.4.1 Ambiente de Desenvolvimento de Algoritmo
O que é um Integrated Development Environment (IDE)? Em português, falamos Ambiente de
Desenvolvimento Integrado e trata-se de um programa de computador que reúne características
e ferramentas de apoio ao desenvolvimento de software com o objetivo de agilizar este
processo. Ou seja, é um conjunto de ferramentas computacionais usadas no desenvolvimento
de programas ou aplicações. Esses ambientes, normalmente, contam com editor, compilador e
outras ferramentas de apoio ao desenvolvimento na linguagem pretendida. Podem ser somente
um sistema de arquivos, um editor de texto, um linkeditor e um compilador ou podem consistir
em uma interface uniforme (coleção de ferramentas convenientemente integradas).
Existe uma diferença fundamental nos dois processos e ela é fundamental para o processo de
desenvolvimento de programas e algoritmos. Essa diferença tem um resultado relevante na
alocação de recursos computacionais para a execução do programa ou algoritmo. Veja as
principais diferenças no quadro a seguir:
MÓDULO II - LÓGICA DE PROGRAMAÇÃO
Este ambiente será responsável pela interpretação e execução do pseudocódigo (algoritmo). Ele
fará a tradução de uma linguagem específica em um outro código em linguagem que o
computador compreenda.
O VISUALg é um programa simples que não depende de DLLs, OCXs ou outros componentes e
roda em qualquer Windows (desde o 95). Sua tela é simples e tem melhor aparência com
resolução de vídeo de 800x600 ou maior. A instalação não copia arquivos para nenhuma outra
pasta a não ser aquela em que for instalado e ocupa cerca de apenas 1 MB de espaço em disco.
Uma vez realizado o download do arquivo, conforme a Figura 11, vamos clicar duas vezes para
executar o arquivo e iniciar sua instalação.
Uma vez carregado o instalador, obteremos a janela demonstrada na Figura 12.
Na próxima tela, conforme a Figura 12, vamos indicar o local de instalação do VISUALg. O
instalador indicará o diretório padrão da instalação.
Na próxima tela, conforme a Figura 13, vamos definir os componentes a serem instalados no
sistema. Manteremos a configuração padrão, a qual instala os exemplos de códigos do VISUALg.
Na próxima tela, conforme a Figura 15, vamos selecionar que tarefas adicionais serão
executadas na instalação. Selecione “Associar arquivos .alg ao VISUALg”.
Na próxima tela, conforme a Figura 16, o sistema indica que está pronto para instalar o VISUALg.
Na próxima tela, conforme a Figura 17, o sistema indicará que terminou a instalação com
sucesso.
232
Fonte: Elaborada pelo autor.
MÓDULO II - LÓGICA DE PROGRAMAÇÃO
Agora, vamos aprender a utilizar a interface do VISUALg e como criar, salvar, executar e
carregar programas com ele.
233
MÓDULO II - LÓGICA DE PROGRAMAÇÃO
Agora vamos nos familiarizar um pouco com a tela do VISUALg. Uma vez que o programa tenha
carregado, podemos identificar na sua tela, conforme a Figura 20 os seguintes itens:
Colar (Ctrl-V) Copia o texto da área de transferência para o local em que está
o cursor.
Gravar bloco de Permite a gravação em arquivo de um texto selecionado no
texto editor. A extensão sugerida para o nome do arquivo é .inc.
Numerar linhas Ativa ou desativa a exibição dos números das linhas na área à
esquerda do editor. A linha e a coluna do editor em que o cursor
está em um determinado momento também são mostradas na
barra de status.
Mostrar variáveis Retorna a divisão da tela ao formato inicial, caso você tenha
modificadas mudado o tamanho da área do editor de texto, quadro de
variáveis ou simulador de saída.
236
MÓDULO II - LÓGICA DE PROGRAMAÇÃO
Executar com Insere um atraso que pode ser especificado no intervalo ao lado
timer (Shift-F9) antes da execução de cada linha.
Intervalo do timer Atrasa cada linha quando deseja executar o pseudocódigo com
timer.
237
MÓDULO II - LÓGICA DE PROGRAMAÇÃO
Para começar a elaborar o seu primeiro algoritmo, vamos primeiro ABRIR o VISUALg. Depois de
carregado, o VISUALg será mostrado conforme a Figura 21.
Agora, vamos escrever nosso primeiro algoritmo. Primeiro vamos fazer a síntese do algoritmo
(colocar comentários). Digite o seguinte:
algoritmo “semnome”
// Função : Olá mundo
// Autor : Professor Ronald Costa
// Data : 20/11/2017
// Seção de Declarações
238
MÓDULO II - LÓGICA DE PROGRAMAÇÃO
Depois vamos elaborar o corpo do algoritmo, com base no objetivo, na entrada e na saída.
Vamos completar o resto do algoritmo. Esse primeiro algoritmo não realiza processamentos
complexos. Salve o algoritmo em seu computador.
Para executar algoritmos no VISUALg selecione a opção do menu superior Algoritmo e depois
Executar (F9).
Figura 21 - Resultado do algoritmo
Para consolidar o conhecimento e destreza no uso do VISUALg e sua interface vamos praticar
com alguns exercícios simples de forma bem didática.
MÓDULO II - LÓGICA DE PROGRAMAÇÃO
Faça um algoritmo que imprima o seu nome completo e o bairro onde você mora… O algoritmo
terá uma saída simples, muito semelhante ao exemplo anterior.
Como fazemos para receber valores e imprimir os valores recebidos na tela? Vamos criar um
algoritmo para receber um número inteiro e armazenar em uma variável. Depois faremos o
algoritmo exibir esse número na tela.
Figura 22
241
Fonte: Elaborada pelo autor.
MÓDULO II - LÓGICA DE PROGRAMAÇÃO
Além dessa ajuda rápida, podemos acessar o menu de AJUDA, conforme a Figura 24, no qual é
possível observar as seguinte opções:
● Dica do dia
● ? A Tela do VISUALg
● A Linguagem do VISUALg
● Referência da Linguagem do VISUALg
242
MÓDULO II - LÓGICA DE PROGRAMAÇÃO
2) Faça uma tabela, no papel, com linhas e colunas. A primeira coluna deverá conter o número
das linhas da execução de instruções que estamos observando. As colunas seguintes da tabela
deverão conter as variáveis que vamos observar. Uma coluna para cada variável.
3) Em cada linha da tabela vamos colocar o número da linha de código que estamos executando
(primeira coluna). Nas colunas seguintes dessa mesma linha, os valores de cada variável no
momento de execução do algoritmo.
243
MÓDULO II - LÓGICA DE PROGRAMAÇÃO
5) Quando for indicar que uma variável recebeu um valor lido, coloque entre parênteses. Ex:
(18)
6) Se foi escrito pela instrução (alterado), coloque entre chaves. Ex: {20}
7) Quando uma variável, naquele momento de execução, ainda não tem valor definido, coloque
uma interrogação. Ex: ?
8) Se o valor de uma variável for exibido na tela (saída), coloque na coluna o valor em negrito
e vermelho para destacar.
Imagine um algoritmo para ler dois números (a e b) e apresentar o resultado das 4 operações
básicas (+ , - , * e /).
244
MÓDULO II - LÓGICA DE PROGRAMAÇÃO
245
MÓDULO II - LÓGICA DE PROGRAMAÇÃO
inicio
// Seção de Comandos Não temos nada para o teste de mesa aqui nestas linhas...
escreva (“Digite o valor de a:”)
LINHA 10) A variável “a” recebe o valor digitado pelo
leia (a) usuário que foi “10”. Colocamos (10) na coluna da
variável “a”. As outras permanecem com “?”.
Tomando por base o processo de teste apresentado neste exemplo, você poderá criar outras
variações do teste de mesa. Isso servirá até que você tenha maior firmeza para usar métodos
mais simples de depuração e teste dos algoritmos.
248
MÓDULO II - LÓGICA DE PROGRAMAÇÃO
1) A primeira etapa é
providenciar o download do
instalador do Dev-C++. Acesse
o link, a seguir, para fazer o
download do executável
gratuito no endereço:
https://sourceforge.net/proje
cts/orwelldevcpp/
249
MÓDULO II - LÓGICA DE PROGRAMAÇÃO
3) Selecione a linguagem
“Português” e clique OK.
250
MÓDULO II - LÓGICA DE PROGRAMAÇÃO
5) Mantenha a configuração
padrão na tela de escolha dos
componentes. Clique em
“Seguinte” para continuar.
251
MÓDULO II - LÓGICA DE PROGRAMAÇÃO
7) O sistema começará a
instalação do Dev-C++.
Aguarde o processo de
instalação terminar.
252
MÓDULO II - LÓGICA DE PROGRAMAÇÃO
9) Apenas na primeira
execução do Dev-C++ devemos
definir a linguagem padrão da
interface. Selecione
“Portuguese (Brazil)” e depois
clique em “Next” para
continuar.
253
MÓDULO II - LÓGICA DE PROGRAMAÇÃO
254
MÓDULO II - LÓGICA DE PROGRAMAÇÃO
255
MÓDULO II - LÓGICA DE PROGRAMAÇÃO
14) Agora vamos executar o código. Para executar vamos usar o atalho (F11). Salve o
arquivo. Se você fez tudo certo verá o resultado abaixo. Perceba que C compila o arquivo
do código fonte. Olhe na pasta na qual salvou o código e verá que depois da execução do
código, o Dev-C ++ gerou (compilou) um arquivo executável (binário) a partir do seu
código fonte. Essa é a diferença entre compilação e interpretação. Não esqueça.
Quando acessamos a interface do DEV-C++ o sistema apresenta por padrão a tela da Figura 25.
Podemos, a partir do MENU ARQUIVO, começar um arquivo fonte diretamente ou um projeto.
Se desejar começar um arquivo fonte rapidamente digite CTRL + N (atalho).
256
MÓDULO II - LÓGICA DE PROGRAMAÇÃO
Acompanhe a Figura 26. Vamos testar começar um PROJETO de código em C. Para isso vamos
acessar ARQUIVO >> NOVO >> PROJETO.
Observe a Figura 27. Nessa próxima tela de definição do projeto, vamos escolher “Console
Application”, depois selecione o item “Projeto C” para indicar que trabalharemos com a
Linguagem C especificamente. Indique um NOME para o projeto. Neste exemplo, colocamos
“Teste”.
Figura 27 - Definindo o projeto no Dev-C++
O passo seguinte será compilar e executar o nosso código fonte em C. Vamos acessar o menu
EXECUTAR conforme a Figura 31. Observe que temos a opção de somente compilar (gerar novo
executável com as últimas modificações no código), somente executar (a última versão já
compilada) ou então “compilar & executar”, em sequência (atalho F11). Vamos utilizar o F11
para compilar e executar.
260
Fonte: Elaborada pelo autor.
MÓDULO II - LÓGICA DE PROGRAMAÇÃO
Finalmente temos a execução do código. Acompanhe na Figura 33. Reitero que o C compila o
arquivo do código fonte. Olhe na pasta onde salvou o código e verá que depois da execução do
código, o Dev-C ++ gerou (compilou) um arquivo executável (binário) a partir do seu código
fonte. Essa é a diferença entre compilação e interpretação. Não esqueça!
Caso tenha alguma dificuldade de instalação procure apoio do tutor presencial. Aproveite para
assistir ao vídeo a seguir.
261
MÓDULO II - LÓGICA DE PROGRAMAÇÃO
Saiba mais!
Que tal dar uma espiada em como se instala o Dev-C++ ?
Por enquanto não vamos usá-lo ainda, mas no próximo tópico vamos
iniciar o seu uso. Que tal adiantar um pouquinho e já ficar preparado para aprender um
pouco de Linguagem C em paralelo com Português Estruturado?
Acesse: https://www.youtube.com/watch?v=V6jWIzVcqow
262
MÓDULO II - LÓGICA DE PROGRAMAÇÃO
Vamos rever?
264
MÓDULO II - LÓGICA DE PROGRAMAÇÃO
Sites indicados
Audiovisuais indicados
1) Como Baixar - Instalar e Configurar o Dev C++ no Windows 10 ?
https://www.youtube.com/watch?v=V6jWIzVcqow
265
MÓDULO II - LÓGICA DE PROGRAMAÇÃO
Questões de autoaprendizagem
a) Vamos testar o VISUALg? Ainda não aprendemos todos os comandos desse exemplo que
vamos testar, mas isso não importa. Vamos matar a curiosidade. Digite no VISUALg o código
abaixo e execute. Qual foi a saída?
algoritmo “salario”
// Seção de Declarações var sal:real
i,contador:inteiro
inicio
// Seção de Comandos i<-0;
contador<-0;
para i de 1 ate 5 passo 1 faca
escreva(“Digite o salario do funcionário “,i, “: “) leia (sal)
se sal>500 entao
contador<-contador+1 fimse
fimpara
escreval(contador, “ Funcionários recebem salários superiores a R$ 300,00.” ) fimalgoritmo
266
MÓDULO II - LÓGICA DE PROGRAMAÇÃO
Questões de autoaprendizagem
b) Vamos testar outro? Experimente esse agora. Digite no VISUALg o código abaixo e execute.
Qual foi a saída?
inicio
Escreva(“Digite a nota 1: “)
Leia (P1)
Escreva(“Digite a nota 2: “)
Leia (P2)
Escreva(“Digite a nota 3: “)
Leia (P3)
Escreva(“Digite a nota 4:”)
Leia (P4)
267
MÓDULO II - LÓGICA DE PROGRAMAÇÃO
Questões de autoaprendizagem
c) Vamos testar o Dev-C++? Não sabemos nada da Linguagem C, mas isso também não
importa. Agora o que importa é experimentar. Digite no Dev-C++ o código abaixo e
execute. Qual foi a saída?
#include <stdio.h>
int main(void)
{
printf(“Meu primeiro programa - Olá Mundo!\n”);
return 0;
}
268
MÓDULO II - LÓGICA DE PROGRAMAÇÃO
Resposta: Pergunte a qualquer um deles: Qual a porta que o seu companheiro apontaria
como sendo a porta da liberdade?
Explicação: O mentiroso apontaria a porta da morte como sendo a porta que o seu
companheiro apontaria, e o sincero, sabendo que seu companheiro sempre mente, diria
que ele apontaria a porta da morte como sendo a porta da liberdade. Conclusão: Os dois
apontariam a porta da morte. Portanto, é só seguir pela outra porta.
269
MÓDULO II - LÓGICA DE PROGRAMAÇÃO
Estruturas de Controle
e de Repetição
271
MÓDULO II - LÓGICA DE PROGRAMAÇÃO
As estruturas de controle de dados são responsáveis pela manipulação dos dados. Essas
estruturas possuem uma lógica de operação e estabelecem uma sequência de ações a serem
efetuadas ou verificadas.
● Repetição: uma estrutura determina que certas ações deverão ser repetidas, de
acordo com o resultado de um teste condicional.
272
MÓDULO II - LÓGICA DE PROGRAMAÇÃO
2.1 Estruturas de Controle
A estrutura sequencial é a mais convencional entre todas as estruturas, pois ela executa uma
instrução de cada vez: o encerramento da primeira instrução permite o acionamento da
instrução seguinte, respeitando a ordem de cima para baixo, linha por linha. Dentro da linha
selecionada, sempre da esquerda para a direita, semelhante ao nosso procedimento de leitura
de textos.
274
Fonte: Elaborada pelo autor.
MÓDULO II - LÓGICA DE PROGRAMAÇÃO
2.1.2 Estrutura de Seleção
A estrutura de seleção é também conhecida como uma estrutura condicional. Ela permite a
escolha ou a definição de um caminho sequencial a ser executado. Porém, a escolha é definida
de acordo com o resultado de uma verificação ou teste condicional.
Estes testes (avaliações de condições) utilizam a lógica convencional e têm resultados do tipo
lógico (V ou F). Essas expressões que são avaliadas empregam operadores relacionais, lógicos e
aritméticos.
Vamos refletir?
Vamos considerar que o usuário tenha digitado o valor 15 para IDADE. Neste caso, o
resultado da comparação (15>=18) será FALSO, pois 15 não é maior ou igual a 18. A
estrutura de seleção simples somente executa seu BLOCO CONDICIONAL (conjunto de
instruções interno a estrutura SE - comandos identados dentro da estrutura) se o
resultado da expressão (condição) que ela avalia for VERDADEIRO. Assim, a estrutura
desvia a execução do algoritmo diretamente para o fimse, pulando todos os comando
do BLOCO CONDICIONAL (observe o fluxograma da Figura 3) e depois termina o
algoritmo no fimalgoritmo.
Agora, vamos imaginar que o usuário tenha digitado o valor 20 para a variável IDADE.
Neste caso, o resultado da comparação (20>=18) será VERDADEIRO, pois 20 é maior ou
igual a 18. A estrutura de seleção simples irá executar seu BLOCO CONDICIONAL
(conjunto de instruções interno a estrutura SE - comandos identados dentro da
estrutura), pois, desta vez, o resultado da expressão (condição) que ela avaliou foi
VERDADEIRO (observe o fluxograma da Figura 3). Neste caso, o comando escreva fará a
impressão na tela da mensagem “Maior de idade” e depois o algoritmo chega ao
fimse e ao fimalgoritmo terminando a sua execução.
276
MÓDULO II - LÓGICA DE PROGRAMAÇÃO
277
MÓDULO II - LÓGICA DE PROGRAMAÇÃO
A seleção composta sempre executa um dos blocos condicionais. De acordo com o resultado da
avaliação de sua condição (expressão), se o resultado for VERDADEIRO, executa o bloco
“verdadeiro” e, se for FALSO, executa o bloco “falso”. Nunca irá executar os dois blocos! Ela
executa um ou outro, pois sempre ocorre a seleção do bloco a ser executado de acordo com o
resultado lógico.
Vamos refletir?
Para compreender melhor a estrutura de Seleção composta (SE
ENTÃO SENÃO) vamos verificar um exemplo de acordo com a Figura 5. O primeiro
passo é a declaração de uma variável IDADE. Depois, iniciando o algoritmo, temos o
comando leia que recebe e armazena um valor na variável IDADE. O próximo comando
é a estrutura de Seleção composta (SE ENTÃO SENÃO) que avalia a expressão
(IDADE>=18). Considere que o usuário tenha digitado o valor 10 para IDADE. Neste
caso, o resultado da comparação (10>=18) será FALSO, pois 10 não é maior ou igual a
18. A estrutura de Seleção composta (SE ENTÃO SENÃO) pode executar um de seus
BLOCOS CONDICIONAIS (conjunto de instruções interno a estrutura SE - comandos
identados dentro da estrutura separados em dois blocos do ENTÃO e do SENÃO) de
acordo com o resultado da expressão (condição) que ela avalia. Como o resultado foi
FALSO, ela irá executar o bloco do SENÃO. Assim, a estrutura desvia a execução do
algoritmo diretamente para o bloco do SENÃO e, dentro dele, executa o comando
escreva com a mensagem “Menor de idade”. Depois disso chega ao fimse e termina
o algoritmo no fimalgoritmo.
Agora, vamos imaginar que o usuário tenha digitado o valor 18 para a variável IDADE.
Neste caso, o resultado da comparação (18>=18) será VERDADEIRO, pois 18 é igual a
18. A estrutura de Seleção composta (SE ENTÃO SENÃO) pode executar um de seus
BLOCOS CONDICIONAIS (conjunto de instruções interno a estrutura SE - comandos
identados dentro da estrutura, separados em dois blocos do ENTÃO e do SENÃO) de
acordo com o resultado da expressão (condição) que ela avalia (observe o fluxograma
da Figura 5).
Leia idade
Fluxo
algoritmo “Maior de idade 2” Condicional:
Falso
início Condição
IDADE : numérico Idade >=18
leia (IDADE)
Verdadeiro Escreva “Menor de
se (IDADE >= 18) entao idade”
escreva (“Maior de idade”)
senão
escreva (“Menor de idade”) Escreva “Maior de idade”
fimse
fimalgoritmo
280
MÓDULO II - LÓGICA DE PROGRAMAÇÃO
Construa um algoritmo que exiba mensagens de acordo com um determinado valor de idade
recebido, avaliando as seguintes condições:
início
Idade : inteiro
“Informe sua
idade:”
Idade
F
Idade < 20
V
F F
Idade < 15 Idade < 60
V V
“Você é “Você é “Você é “Você é
uma adolescente” adulto” idoso”
criança”
fim
283
MÓDULO II - LÓGICA DE PROGRAMAÇÃO
Uma outra forma de seleção muito utilizada nas avaliações de igualdade, é a seleção de múltipla
escolha. Por meio dela, é possível testar somente a igualdade de um valor que está na condição
inicial, percorrendo as diversas escolhas disponíveis. Em caso de resultado verdadeiro desse
teste, temos a execução de um bloco de instruções ou de uma única instrução específica
separada pela nova palavra reservada caso.
início
epoca: inteiro
“Digite o período
quadrimestral do
ano em que se
encontra:”
epoca
F F F F
epoca = 1 epoca = 2 epoca = 3 epoca = 4
V V V V
“período
“verão” “outono” “inverno” “primavera”
inválido”
fim
286
MÓDULO II - LÓGICA DE PROGRAMAÇÃO
Caso tenha alguma dificuldade de utilização do VISUALg retorne à unidade 1 e consulte o tópico
1.4.3. Aproveite para assistir ao vídeo a seguir e aprenda um pouco mais sobre as Estruturas de
Controle.
Saiba mais!
Que tal dar uma espiada em um material de Lógica com VISUALg? Achou complicado?
Vamos espiar um conjunto de vídeos para entender esses conceitos um pouco
melhor?
Acesse:
https://www.youtube.com/watch?v=6-_leAMCi8M&list=PLlUjQffi3XKOc2OjC5aCekm
xmhC5kSm70
287
MÓDULO II - LÓGICA DE PROGRAMAÇÃO
Vamos rever?
Para fechar, a estrutura de seleção MÚLTIPLA ESCOLHA é muito utilizada nas avaliações
de igualdade. Por meio dela, é possível testar somente a igualdade de um valor que
está na condição inicial, percorrendo as diversas escolhas disponíveis. Em caso de
resultado verdadeiro desse teste, temos a execução de um bloco de instruções ou de
uma única instrução específica separada pela nova palavra reservada caso. Todas as
instruções programáveis podem estar dentro de qualquer um dos blocos da instrução de
seleção, inclusive a própria instrução de seleção. Não há limite na quantidade de testes
condicionais que podem estar dentro de um outro.
288
MÓDULO II - LÓGICA DE PROGRAMAÇÃO
Sites indicados
289
MÓDULO II - LÓGICA DE PROGRAMAÇÃO
Audiovisuais indicados
290
MÓDULO II - LÓGICA DE PROGRAMAÇÃO
Questões de autoaprendizagem
a) Faça um algoritmo que receba duas notas e calcule a média das notas. Caso a
média seja maior de 8,0 o sistema deverá mostrar ao aluno um agradecimento
(Excelente!). No final, o sistema deverá mostrar o valor da média do aluno.
b) Faça um algoritmo que avalie uma idade recebida e exiba uma mensagem “Você é
uma criança” se a idade recebida for menor de 15 anos de idade.
291
MÓDULO II - LÓGICA DE PROGRAMAÇÃO
Questões de autoaprendizagem
d) Crie um algoritmo que receba o ano de nascimento de uma pessoa e calcule a sua
idade. No final da execução, o sistema deverá, para mostrar os resultados, limpar
a tela e exibir os seguintes dados: a indicação se é criança caso a idade seja
menor de 15 anos, o ano de nascimento e a idade da pessoa.
LER SALBASE
LER GRATIF
SALLIQ = SALBRUTO - IR
SALLIQ
FIM
Questões de autoaprendizagem
h) Mude o algoritmo anterior (letra g) para que ele execute utilizando apenas Seleção
Composta (Se... entao... senao...).
i) Faça um algoritmo que avalie uma idade recebida e exiba uma mensagem “Você é
uma criança” se a idade recebida for menor de 15 anos. Para outras idades,
deverá indicar que a pessoa é adulta. Depois de implementar o algoritmo,
construa o fluxograma adequado.
293
MÓDULO II - LÓGICA DE PROGRAMAÇÃO
Questões de autoaprendizagem
k) Faça um algoritmo que monte uma calculadora com as seguintes funções: (1) Soma
(2) Subtração (3) Divisão (4) Multiplicação. A calculadora recebe os dois números,
efetua a opção escolhida e apresenta o resultado.
294
MÓDULO II - LÓGICA DE PROGRAMAÇÃO
a)
b)
295
MÓDULO II - LÓGICA DE PROGRAMAÇÃO
c) d)
296
MÓDULO II - LÓGICA DE PROGRAMAÇÃO
e) g)
f) h)
297
MÓDULO II - LÓGICA DE PROGRAMAÇÃO
i)
298
MÓDULO II - LÓGICA DE PROGRAMAÇÃO
j)
299
MÓDULO II - LÓGICA DE PROGRAMAÇÃO
k)
300
MÓDULO II - LÓGICA DE PROGRAMAÇÃO
l)
301
MÓDULO II - LÓGICA DE PROGRAMAÇÃO
As estruturas de repetição são essenciais para execução dos mais diversos tipos de algoritmos.
303
MÓDULO II - LÓGICA DE PROGRAMAÇÃO
Um processamento de valores pode acontecer sobre uma mesma lógica operacional, porém os
dados envolvidos são diferentes e resultam em valores finais também diferentes, utilizado em
algoritmos nos quais um determinado cálculo (processamento) deverá ser feito várias vezes,
apenas com mudança de valores. Trata-se de um processo repetitivo.
Vamos observar o seguinte exemplo: “Vamos criar um algoritmo que receba um número positivo
e calcule a tabuada de 1 a 10 com o número informado”.
Continua…
304
Fonte: Elaborada pelo autor.
MÓDULO II - LÓGICA DE PROGRAMAÇÃO
305
MÓDULO II - LÓGICA DE PROGRAMAÇÃO
Sintaxe Geral:
<bloco de comandos>
fimpara
306
MÓDULO II - LÓGICA DE PROGRAMAÇÃO
Ação
Escreva
Resultado
307
Fonte: Elaborada pelo autor.
MÓDULO II - LÓGICA DE PROGRAMAÇÃO
Repetição enquanto... faça
● Caso o resultado desse teste lógico seja verdadeiro, todo bloco de repetição é
executado até a instrução fimenquanto.
Sintaxe Geral:
● <condição> é um teste condicional que resulta em um dado do tipo lógico, ou seja, tem
resultado verdadeiro ou falso somente, sendo estes valores excludentes (ou é falso ou
é verdadeiro, nunca podendo ser os dois ao mesmo tempo);
309
MÓDULO II - LÓGICA DE PROGRAMAÇÃO
Falso
Condição
Verdade
Conjunto de
ações
310
Fonte: Elaborada pelo autor.
MÓDULO II - LÓGICA DE PROGRAMAÇÃO
Ao se trabalhar com estruturas de repetição, devemos tomar muito cuidado com as variáveis
envolvidas, especialmente com as variáveis de controle. Todo laço com variável de controle
deve conter:
● O bloco entre as duas palavras reservadas desta instrução (bloco de comandos) será
executado, no mínimo uma vez, independente do resultado do seu teste condicional que
só será realizado ao final de cada execução do próprio bloco.
● A repetição é executada novamente (pela segunda vez) somente se o teste condicional for
falso, pois sendo ele verdadeiro, a repetição é encerrada.
311
MÓDULO II - LÓGICA DE PROGRAMAÇÃO
Observe que a lógica de repetição desta instrução é diferente das outras duas (para... faca e
enquanto... faca) estudadas anteriormente.
Sintaxe Geral:
repita
// também chamado de bloco de repetição
<bloco de comandos>
ate (<condição>)
● <condição> é um teste condicional que resulta em um dado do tipo lógico, ou seja, tem
resultado somente de verdadeiro ou falso que só é realizado ao final da execução de
todas as instruções existentes em seu bloco de repetição;
312
MÓDULO II - LÓGICA DE PROGRAMAÇÃO
Conjunto de
ações
Falso
Condição
Verdade
313
Fonte: Elaborada pelo autor.
MÓDULO II - LÓGICA DE PROGRAMAÇÃO
Controlador Automático
Uma variável auxiliar conta quantas vezes será executado o conjunto de comandos (bloco de
repetição), sem interferência direta do usuário sobre a quantidade de vezes. Este bloco de
instruções sempre será repetido a quantidade de vezes prevista pelo desenvolvedor do
algoritmo (programador).
314
MÓDULO II - LÓGICA DE PROGRAMAÇÃO
repita... ate...
315
Fonte: Elaborada pelo autor
MÓDULO II - LÓGICA DE PROGRAMAÇÃO
repita…
ate...
316
MÓDULO II - LÓGICA DE PROGRAMAÇÃO
Vamos refletir?
CONTADOR
Exemplo:
var
contador: inteiro // declaração do contador
contador <- 0 // inicializa o contador
contador <- contador + 1 // incrementa o contador
317
MÓDULO II - LÓGICA DE PROGRAMAÇÃO
Vamos refletir?
ACUMULADOR
Exemplo:
var
acumulador: inteiro // declaração do acumulador
x: inteiro // declaração de outra variável qualquer
acumulador <- 0 // inicializa o acumulador
// acumula na variável ACUMULADOR o valor anterior mais o valor de X
acumulador <- acumulador + x
318
MÓDULO II - LÓGICA DE PROGRAMAÇÃO
Saiba mais!
Está ficando cada vez mais fácil. Para ajudar um pouco mais, vamos espiar
um conjunto de vídeos para entender esses conceitos um pouco melhor?
Acesse:
https://www.youtube.com/watch?v=6-_leAMCi8M&list=PLlUjQffi3XKOc2OjC5
aCekmxmhC5kSm70
319
MÓDULO II - LÓGICA DE PROGRAMAÇÃO
Vamos rever?
321
MÓDULO II - LÓGICA DE PROGRAMAÇÃO
Vamos rever?
322
MÓDULO II - LÓGICA DE PROGRAMAÇÃO
Sites indicados
323
MÓDULO II - LÓGICA DE PROGRAMAÇÃO
Audiovisuais indicados
324
MÓDULO II - LÓGICA DE PROGRAMAÇÃO
Questões de autoaprendizagem
a) Vamos conferir se você entendeu este tópico. Faça um algoritmo que receba
valores de peso válidos (positivos) e conte a quantidade de valores recebidos. Ao
receber um valor de peso igual a zero, o sistema termina informando quantos
pesos válidos foram recebidos. Use REPITA ATE.
c) Crie um algoritmo para receber as notas de uma turma (sem saber a quantidade de
alunos) até que uma nota negativa seja digitada (nota<0). Ao final, imprimir o
valor da média aritmética da turma (média aritmética = soma das notas /
quantidade de notas), sem considerar o último valor negativo digitado. Use a
estrutura ENQUANTO.
325
MÓDULO II - LÓGICA DE PROGRAMAÇÃO
a)
326
MÓDULO II - LÓGICA DE PROGRAMAÇÃO
b)
c)
327
MÓDULO II - LÓGICA DE PROGRAMAÇÃO
d)
328
MÓDULO II - LÓGICA DE PROGRAMAÇÃO
Como já aprendemos, as variáveis são utilizadas para armazenar dados na memória. A partir de
seus valores, o nosso código (programa) realiza ações, toma decisões e emite resultados. Mas,
uma variável pode armazenar apenas um único valor de cada vez. Bem, pelo menos foi o que
aprendemos até agora. Veja:
Figura 1 - O conceito de variável
É preciso relembrar que toda variável é um apelido (ou simples nome) que aponta para um
endereço de memória em que o dado está armazenado. Ocorre que as linguagens de
programação implementam outras formas de armazenamento como os VETORES e as MATRIZES
que veremos a seguir. Para começar, vamos observar o conceito de um vetor:
Observando a imagem acima, podemos perceber que o VETOR é um conjunto de variáveis que
armazenam diversos valores. Cada valor armazenado possui uma localização que será acessada
por um índice. O vetor, assim como a variável, também possui um apelido (ou simples nome)
que aponta para um endereço de memória onde os dados estão armazenados.
A MATRIZ, assim como o VETOR e a VARIÁVEL, também possui um apelido (ou simples nome)
que aponta para um endereço de memória onde os dados estão armazenados. Seus dados estão
acessíveis por meio de dois índices (bidimensional - linhas e colunas), conforme demonstra a
Figura 3.
333
MÓDULO II - LÓGICA DE PROGRAMAÇÃO
Vamos refletir?
Vamos pensar em como ler e armazenar 5 notas de um aluno. Como ficaria esse
algoritmo?
Veja o código abaixo. Observe como os valores estão sendo lidos e armazenados.
334
MÓDULO II - LÓGICA DE PROGRAMAÇÃO
Vamos refletir?
Uma instrução de repetição não melhoraria muito esta lógica, pois os cinco
valores precisarão estar disponíveis independentes dos outros valores
informados em variáveis distintas. Imagine então que as leituras de todas as
notas dos alunos do seu curso tivessem de ser lidas por seu algoritmo. Como
você faria? Como saber a quantidade de alunos do próximo semestre para
armazenar suas respectivas notas?
335
MÓDULO II - LÓGICA DE PROGRAMAÇÃO
● possui um único nome, ou seja, um único identificador para vários valores a serem
armazenados na memória; e
Vejamos um exemplo:
336
MÓDULO II - LÓGICA DE PROGRAMAÇÃO
Os valores correspondem aos conteúdos informados pelo usuário, ou seja, são as idades
solicitadas ao usuário que às informou por meio da instrução leia. Esses valores são
armazenados, independentemente, na estrutura de dados indicada nesta instrução de entrada
de dados.
Atenção!!!! A primeira posição de armazenamento tem seu índice igual a zero, sendo seu sexto
elemento de idade armazenado no índice ou posição 5 da estrutura.
A sintaxe geral para criação de uma estrutura de dados composta unidimensional, também
chamada de vetor, em um algoritmo em português estruturado, é apresentada na forma geral a
seguir:
337
MÓDULO II - LÓGICA DE PROGRAMAÇÃO
Onde:
● <tipo de dado> é o tipo de dado que será armazenado na estrutura;
É possível perceber certa semelhança com a declaração de uma variável convencional. Houve
apenas uma mudança que é o acréscimo da indicação de “vetor” (palavra reservada) com a
definição do tamanho do vetor.
Vejamos, agora, como seria a declaração de um vetor chamado notas que pode armazenar até
20 números reais independentes.
Exemplo:
notas : vetor [0 ..19 ] de real
idade[3] = 19
idade[0] = 12 (primeira posição do vetor tem índice zero)
O vetor “idade” tem apenas uma dimensão, pois tem apenas um índice.
● Toda atribuição ou acesso a dados do vetor deve utilizar um índice inteiro ou valor (veja
a Figura 7):
A utilização de vetores permite criar uma área de memória indexada. Podemos utilizar diversas
variáveis para armazenar as notas de um aluno. Veja o exemplo abaixo:
not1,not2,not3,not4 : inteiro
Com vetores, podemos utilizar apenas uma variável e acessar os diversos valores por meio de
um identificador (índice). Veja o exemplo abaixo:
Vamos observar os dois exemplos seguintes, nas Figuras 8 e 9, sobre a aplicação de vetores.
Implemente e teste os dois exemplos no VISUALg. Execute e entre com valores. Observe os
340 resultados.
MÓDULO II - LÓGICA DE PROGRAMAÇÃO
341
Fonte: Elaborada pelo autor.
MÓDULO II - LÓGICA DE PROGRAMAÇÃO
Perceba que nos dois exemplos, empregamos estruturas de repetição. No exemplo 2 (Figura 9),
temos a integração de estruturas de repetição e seleção. Observe que o tratamento do vetor é
feito como uma variável normal, sempre indicando o índice do valor (posição) que queremos
manipular.
Quando se declara uma variável do tipo caracter, para armazenar um nome, por exemplo, está
se criando na verdade um vetor do tipo de dado caracter, afinal um nome consiste de um
conjunto de letras (ou símbolos alfabéticos) e não simplesmente de um único caracter. Vejamos
um exemplo da declaração de um vetor de caracteres no VISUALg:
var
// vetor nome com capacidade de 10 caracteres
nome : vetor [0 ..9 ] de caracter
342
MÓDULO II - LÓGICA DE PROGRAMAÇÃO
Vamos observar os dois exemplos seguintes, nas Figuras 10 e 11, sobre a aplicação de vetores
com caracteres. Implemente e teste os dois exemplos no VISUALg. Execute e entre com valores.
Observe os resultados.
343
MÓDULO II - LÓGICA DE PROGRAMAÇÃO
344
MÓDULO II - LÓGICA DE PROGRAMAÇÃO
3.1.4 Matriz
Uma matriz de dados consiste em uma estrutura de dados composta homogênea com variação
em mais de uma dimensão, ou seja, sua organização lógica não está definida sobre uma única
posição, mas sobre a quantidade de dimensões definidas em sua declaração.
Observe o tabuleiro de xadrez descrito na Figura 12 logo abaixo.
É possível uma grande variação de dimensões na criação de um vetor. No entanto, essa criação
deve ser coerente com o problema computacional que estará envolvendo este vetor. A
limitação no número de dimensões de um vetor está apenas na quantidade de memória
disponível no computador utilizado. Contudo, a capacidade de representação e entendimento
de uma estrutura com muitas dimensões é limitada para o ser humano. O mais comum é
utilizarmos o vetor com até 3 dimensões, ou seja, um cubo.
345
MÓDULO II - LÓGICA DE PROGRAMAÇÃO
Sintaxe Geral:
Onde:
• <tipo de dado> é o tipo de dado que será armazenado na estrutura;
• <identificador> é o nome atribuído à estrutura de dados (matriz);
• <inicial> e <final> correspondem, respectivamente, aos valores numéricos inteiros de
início e fim dos índices da primeira dimensão da matriz, sendo seu intervalo a quantidade
exata de elementos da primeira dimensão da matriz;
• <inicial> e <final> correspondem aos valores numéricos inteiros respectivos ao início e fim
dos índices da segunda dimensão da matriz, sendo seu intervalo a quantidade exata de
elementos da segunda dimensão da matriz.
346
MÓDULO II - LÓGICA DE PROGRAMAÇÃO
Saiba mais!
Que tal tirar as possíveis dúvidas sobre essas estruturas de dados que vimos
neste tópico? Numa única videoaula de 5 minutos, você irá aprender os conceitos
de variáveis, vetores e matrizes e entenderá a diferença entre cada um.
347
MÓDULO II - LÓGICA DE PROGRAMAÇÃO
Vamos rever?
349
MÓDULO II - LÓGICA DE PROGRAMAÇÃO
Sites indicados
3) Exercícios de vetores
https://ooffoo.wordpress.com/portugol-ide/exercicios-vetores/
Audiovisuais indicados
Questões de autoaprendizagem
b) O usuário irá digitar 10 elementos para um vetor inteiro. Faça um algoritmo que
determine qual o maior e o menor elemento dentro desse vetor.
d) O usuário irá digitar os valores de uma matriz com 5 x 5 elementos do tipo inteiro.
Faça um algoritmo que determine qual o maior e o menor elemento dentro dessa
351 matriz.
MÓDULO II - LÓGICA DE PROGRAMAÇÃO
3.2 Modularização
3.2.1 Introdução
A modularização é uma característica muito importante no desenvolvimento de programas. Ela
é um método utilizado para facilitar a construção de grandes algoritmos, através de sua divisão
em pequenas etapas, que são os subprogramas. É a aplicação direta do jargão “Dividir para
conquistar”.
É possível perceber que a diferença entre procedimentos e função está apenas em retornar ou
não um valor ao término de sua execução.
A chamada de um subprograma ocorre quando invocamos o trecho de código pelo seu nome
(identificador). Um algoritmo pode chamar um subprograma e, este por sua vez, poderá chamar
outro e assim sucessivamente, transferindo o ponto de execução do algoritmo para o
subprograma chamado. Ao término da execução do subprograma, o ponto de execução retorna,
logo após o ponto inicial da chamada, conforme descrito na Figura 15.
3.2.2 Funções
Uma função é um subalgoritmo que, além de executar uma determinada tarefa, retorna,
explicitamente, um valor para quem a chamou (o algoritmo principal ou a outro subalgoritmo
que a tenha chamado), que é o resultado de sua execução. Esse valor é retornado através da
instrução Retorne. A chamada de uma função aparece como uma expressão e não apenas como
um comando, como foi o caso do procedimento, isso porque tem de existir alguma variável para
receber ou alguma expressão para usar o valor retornado pela função.
355
MÓDULO II - LÓGICA DE PROGRAMAÇÃO
3.2.3 Passagem de parâmetros por Valor
A ausência (opcional) da palavra-chave var indica passagem de parâmetros por referência!
Implemente e teste no
VISUALg!
356
Fonte: Elaborada pelo autor.
MÓDULO II - LÓGICA DE PROGRAMAÇÃO
As variáveis x e y (parâmetros
da função soma) apontam para
os endereços de memória das
variáveis a e b (local onde estão
armazenados os valores delas).
357
Fonte: Elaborada pelo autor.
MÓDULO II - LÓGICA DE PROGRAMAÇÃO
3.2.5 Procedimentos
Um procedimento é um subalgoritmo que não retorna valores ao algoritmo principal ou a outro
subalgoritmo que o tenha chamado. Ele pode apenas receber valores por meio dos parâmetros e
nunca retornar valores explicitamente como no caso das funções que usam a instrução
“retorne”.
Sua declaração, como descrito anteriormente, deve estar entre o final da declaração de
variáveis do algoritmo principal e a linha início do mesmo e obedece à seguinte sintaxe:
358
MÓDULO II - LÓGICA DE PROGRAMAÇÃO
Porém, para manter a modularidade dos programas, NÃO É RECOMENDADO que se faça uso de
variáveis GLOBAIS dentro dos subalgoritmos. E sim, ao invés disso, é importante que se use
passagem de parâmetros.
359
MÓDULO II - LÓGICA DE PROGRAMAÇÃO
360
MÓDULO II - LÓGICA DE PROGRAMAÇÃO
Na Figura 19, temos um outro exemplo interessante. Há uma variável GLOBAL chamada número
do tipo inteiro no algoritmo principal e também, de igual forma, dentro do procedimento
“incrementa” há outra chamada número, só que esta última, apesar de idêntica, é uma variável
LOCAL. Isso significa que estão separadas pelo ESCOPO e, portanto, uma não irá influenciar a
outra. Note que o procedimento não tem retorno!
362
MÓDULO II - LÓGICA DE PROGRAMAÇÃO
363
Fonte: Elaborada pelo autor.
MÓDULO II - LÓGICA DE PROGRAMAÇÃO
Na Figura 20, é importante notar também que a função tem sempre um retorno e na sua
declaração fazemos a definição do tipo de retorno que ela utilizará. A função, como tem
retorno, terá sempre a sua chamada precedida pela atribuição a uma variável, pois, desta
maneira, a variável que está em sua chamada receberá, por meio de atribuição, o valor do
retorno da função.
364
Fonte: Elaborada pelo autor.
MÓDULO II - LÓGICA DE PROGRAMAÇÃO
Comando Interrompa
As estruturas de repetição aprendidas permitem o uso do comando interrompa, que causa uma
saída imediata do laço. Embora esta técnica esteja de certa forma em desacordo com os
princípios da programação estruturada, o comando interrompa foi incluído no VISUALg por ser
encontrado na literatura de introdução à programação e mesmo em linguagens como o Object
Pascal (Delphi/Kylix), Clipper, C, C++, PHP, JAVA, VB, etc.
366
MÓDULO II - LÓGICA DE PROGRAMAÇÃO
Pi :real Valor Pi
367
MÓDULO II - LÓGICA DE PROGRAMAÇÃO
Continua…
368
Fonte: Elaborada pelo autor.
MÓDULO II - LÓGICA DE PROGRAMAÇÃO
369
Fonte: Elaborada pelo autor.
MÓDULO II - LÓGICA DE PROGRAMAÇÃO
Números aleatórios
Muitas vezes, a digitação de dados para o teste de um programa torna-se uma tarefa
entediante. Com o uso do comando aleatório do VISUALg sempre que um comando leia for
encontrado, a digitação de valores numéricos e/ou caracteres é substituída por uma geração
aleatória.
Este comando não afeta a leitura de variáveis lógicas: com certeza, uma coisa pouco usual em
programação. O VISUALg implementa algumas extensões às linguagens “tradicionais” de
programação com o intuito principal de ajudar o seu uso apenas como ferramenta de ensino.
aleatorio off
Desativa a geração de valores aleatórios. A
palavra-chave off é obrigatória.
370
MÓDULO II - LÓGICA DE PROGRAMAÇÃO
Vamos refletir?
371
Fonte: Elaborada pelo autor.
MÓDULO II - LÓGICA DE PROGRAMAÇÃO
Saiba mais!
Hummm! Boa pergunta, não? Se você ainda está com alguma dúvida ou deseja
aprofundar um pouco mais, vamos olhar esse site para entender esses conceitos um
pouco melhor. Ok? Vamos explorar um pouco mais! Não desista. Seja persistente!
Teste e modifique os códigos!
Acesse: https://dicasdeprogramacao.com.br/o-que-sao-funcoes-e-procedimentos/
372
MÓDULO II - LÓGICA DE PROGRAMAÇÃO
Vamos rever?
Sites indicados
Audiovisuais indicados
375
MÓDULO II - LÓGICA DE PROGRAMAÇÃO
Questões de autoaprendizagem
Dados da Matriz
--------------------------
| 1| 2| 3
| 4| 5| 6
| 7| 8| 9
Questões de autoaprendizagem
d) Uma função “soma” que irá retornar para o programa principal o valor da soma de
todos os elementos da matriz. O resultado será impresso na tela pelo programa
principal.
e) Uma função “maior” que irá retornar para o programa principal, o maior valor
contido entre todos os elementos da matriz. O resultado será impresso na tela
pelo programa principal.
377
MÓDULO II - LÓGICA DE PROGRAMAÇÃO
Abaixo, apresento uma resposta incompleta que você poderá tomar por base para
finalizar o que falta no algoritmo.
procedimento menu()
var
inicio
limpatela
Escreval(" MENU")
Escreval ("------------")
Escreval ("1 - Carregar dados")
Escreval ("2 - Exibir dados")
Escreval ("3 - Sair")
Fimprocedimento
procedimento carregar()
var
x,y:inteiro
inicio
limpatela
escreval ("Carregando dados na Matriz")
escreval ("--------------------------")
para x de 0 ate 2 faca
para y de 0 ate 2 faca
escreva ("Digite MATRIZ[",x,",",y,"]:")
leia (matriz[x,y])
fimpara
Continua…
fimpara
378 Fimprocedimento
MÓDULO II - LÓGICA DE PROGRAMAÇÃO
379
l
Linguagem C, Linguagem Orientada a
Objetos com C++
Vamos começar!
MÓDULO II - LÓGICA DE PROGRAMAÇÃO
382
MÓDULO II - LÓGICA DE PROGRAMAÇÃO
b) Anjuta (GNU/linux)
Ambiente semelhante ao Dev C++ só que para GNU/Linux. É bastante versátil e agradável. A
sua instalação pode ser feita por pacotes no Debian ou Ubuntu. Está disponível para
download em: http://anjuta.org/
Outra forma bastante prática de compilar códigos em C / C++ é utilizar o compilador nativo
do GNU/Linux. Utilizando um arquivo de texto que contenha o código fonte, gravado com um
editor qualquer, basta acessar um terminal, digitar o comando de compilação e pronto.
1) No debian o gcc e o g++ podem ser instalados com os comandos:
2) Depois crie um arquivo utilizando um editor do GNU/Linux. Neste caso, usamos o nano.
Digite o código fonte mostrado na Figura 4.
$ nano modelo.c
4) Para compilar:
$ gcc <nome_arquivo_fonte> -o <nome_arquivo_binario_a_ser_gerado>
Agora que o ambiente de programação foi escolhido e instalado, vamos dar início ao estudo da
linguagem de programação C.
387
MÓDULO II - LÓGICA DE PROGRAMAÇÃO
388
MÓDULO II - LÓGICA DE PROGRAMAÇÃO
A Linguagem C foi criada por Dennis M. Ritchie e Brian Kernighan em 1972, nos laboratórios Bell
(EUA). Ela foi criada para o desenvolvimento do sistema operacional UNIX, o qual era escrito em
Assembly (linguagem de baixo nível). A Linguagem C, assim como a Assembly, também possui
instruções de baixo nível bem próximas à linguagem de máquina.
● É uma linguagem muito popular e foi a base para a criação de outras linguagens mais
atuais como C++ e Java.
Linguagem compilada é aquela que não é executada (interpretada) a partir de seu código fonte
diretamente. A linguagem compilada passa por um processo de compilação, realizado pelo
compilador, que interpreta o código fonte, gera um código objeto e, neste processo, realiza a
ligação de todas as bibliotecas necessárias para o funcionamento do programa. Depois,
converte o arquivo final em um executável (código binário) que poderá ser executado na
arquitetura (sistema operacional) onde foi compilado. A figura 8 exemplifica o processo de
compilação.
389
MÓDULO II - LÓGICA DE PROGRAMAÇÃO
Observe os dois exemplos abaixo. O código da esquerda está descrito em português estruturado
(Lógica - VISUALg) e o da direita em Linguagem C. Podemos observar os dois códigos e começar
a perceber as equivalências. Isso mesmo, tudo aquilo que aprendemos em VISUALg pode ser
portado (migrado) para a linguagem C. É isso que vamos aprender neste tópico.
391
MÓDULO II - LÓGICA DE PROGRAMAÇÃO
10 do 21 if 32 void
11 double 22 int - -
392
MÓDULO II - LÓGICA DE PROGRAMAÇÃO
A aplicação de comentários em C pode ser feita tanto por linhas como por blocos.
Figura 10 - Comentários
O #include especifica uma biblioteca chamada pelo código C. A linguagem C possui um conjunto
de bibliotecas com instruções já prontas que permitem ao desenvolvedor não necessitar
escrever códigos já prontos.
O pequeno código da página anterior apenas especifica a função main(). Ela é um conjunto de
instruções que o programa executará em primeiro lugar. Inicialmente, colocaremos todos os
códigos dentro de main. Não se preocupe, pois depois poderemos criar outras funções. O
comando printf permite que seja exibido na tela o texto que está entre aspas. Todo comando
interno deve ser finalizado com ponto-e-vírgula (;).
O arquivo com o código deve ser salvo com o nome desejado pelo desenvolvedor e com a
extensão “.c“. Pronto. Agora basta compilar e executar o código.
Escolha o seu compilador C e digite o código abaixo para testar o funcionamento. Experimente
fazer modificações no programa.
Lembre-se!
A função main
será sempre
executada em
primeiro
lugar. Ela é a
função
principal da
linguagem C.
394
MÓDULO II - LÓGICA DE PROGRAMAÇÃO
Para responder a esta pergunta, teste o código no compilador. Digite o código e teste.
395
Fonte: Elaborada pelo autor.
MÓDULO II - LÓGICA DE PROGRAMAÇÃO
Se você testou o código irá perceber que ocorreu um erro de compilação. Logo, a alternativa
correta é a letra “e”. Mas o que aconteceu? Se você testou o código, terá observado que o
compilador gerou um código de erro e que a explicação apresentada é:
exit status 1
Duas mensagens do compilador estão destacadas. As duas mensagens indicam que as variáveis b
e c não foram declaradas e, por isso, não podem ser utilizadas pela primeira vez no código.
396
MÓDULO II - LÓGICA DE PROGRAMAÇÃO
Constantes
As constantes são armazenadas na memória e não modificam seus valores durante a execução
do programa. A criação de uma constante é feita com o comando #define, colocado no início do
programa-fonte.
Vamos Refletir?
Digite o código e teste.
397
MÓDULO II - LÓGICA DE PROGRAMAÇÃO
Variáveis
Vamos Refletir?
Digite o código e teste.
398
MÓDULO II - LÓGICA DE PROGRAMAÇÃO
Variáveis só conseguem armazenar valores de um mesmo tipo com que foram declaradas.
ATENÇÃO: para evitar problemas com acesso aos conteúdos indevidos (lixo por variável não
inicializada), uma variável deve ter um valor inicial sempre definido.
Uma variável pode receber valor enquanto é definida (declarada) ou depois de declarada.
int d //declara
d=5 //atribui valor
Vamos Refletir?
Digite o código e teste.
De onde saiu a
variável “b”?
399
MÓDULO II - LÓGICA DE PROGRAMAÇÃO
Empregamos operadores para realizar diversas operações. Com os operadores podemos realizar
operações matemáticas, de comparação, lógicas e até mesmo em nível de bits entre variáveis.
Operadores aritméticos
Consideramos OPERADORES ARITMÉTICOS aqueles que atuam (operam) números, quer sejam
valores, variáveis, constantes ou até chamadas de funções ou expressões que resultam em
valores numéricos.
400
MÓDULO II - LÓGICA DE PROGRAMAÇÃO
Vamos refletir?
Digite o código e teste.
401
MÓDULO II - LÓGICA DE PROGRAMAÇÃO
Vamos refletir?
Digite o código e teste.
402
MÓDULO II - LÓGICA DE PROGRAMAÇÃO
Operadores de atribuição ( = , += , -= , *= , /= , %= )
A atribuição é considerada pela linguagem C como uma expressão. Atribuir um valor a uma
variável é armazenar este valor em seu endereço de memória.
Vamos refletir?
Digite o código e teste.
403
MÓDULO II - LÓGICA DE PROGRAMAÇÃO
Operadores de incremento (++) e decremento (--)
O incremento pode ser colocado antes ou depois da variável que foi utilizada.
n++; //n está sendo incrementado em 1. Igual a n = n+1;
n--; //n está sendo decrementado em 1. Igual a n = n-1;
Vamos refletir?
Digite o código e teste.
404
MÓDULO II - LÓGICA DE PROGRAMAÇÃO
405
MÓDULO II - LÓGICA DE PROGRAMAÇÃO
Vamos refletir?
Digite o código e teste.
406
MÓDULO II - LÓGICA DE PROGRAMAÇÃO
Operadores lógicos (&& , || , ! )
A realização das operações com operadores lógicos é sempre realizada da esquerda para a
direita. A avaliação da expressão só termina quando seu valor pode ser conhecido
(determinado). São utilizados para modelar situações em que não podemos utilizar apenas
operadores aritméticos ou relacionais.
Por exemplo, a expressão matemática 0 < x < 10 indica que o valor de x deve ser maior do que
0 (zero) e também menor do que 10. Equivale a (x > 0) && (x < 10) .
Vamos refletir?
Operadores lógicos (&&, ||, !)
Tabela verdade
Os termos a e b representam o resultado de duas expressões relacionais
407
MÓDULO II - LÓGICA DE PROGRAMAÇÃO
Vamos refletir?
Digite o código e teste.
408
MÓDULO II - LÓGICA DE PROGRAMAÇÃO
sizeof
Conversão de tipo
A conversão de tipo é automática na avaliação de uma expressão. A conversão de tipo pode ser
solicitada (requisitada) explicitamente.
Vamos refletir?
Digite o código e teste.
409
MÓDULO II - LÓGICA DE PROGRAMAÇÃO
A função printf (saída)
É uma função utilizada para a saída de valores na tela (exibir) de acordo com um determinado
formato.
A função printf deve receber pelo menos dois parâmetros separados por vírgula:
● um string de formato que define, através de caracteres especiais, os tipos dos dados a
serem impressos e suas posições na linha de impressão;
● um dado a ser impresso.
Vamos refletir?
Digite o código e teste.
410
MÓDULO II - LÓGICA DE PROGRAMAÇÃO
Algumas vezes, necessitamos formatar a saída de dados na tela de forma mais adequada. A
função printf possui alguns especificadores de formato que podemos empregar.
411
MÓDULO II - LÓGICA DE PROGRAMAÇÃO
São constantes predefinidas. Elas permitem o envio de caracteres de controle não gráficos para
dispositivos de saída. Isso também é empregado para realizar uma formatação diferenciada ou
controlar funções e impressão de caracteres especiais.
412
Fonte: Elaborada pelo autor.
MÓDULO II - LÓGICA DE PROGRAMAÇÃO
Vamos refletir?
Digite o código e teste.
413
MÓDULO II - LÓGICA DE PROGRAMAÇÃO
É uma função utilizada para a entrada de valores por meio do teclado (receber) de acordo com
um determinado formato que será armazenado em uma variável.
A função scanf deve receber, pelo menos, dois parâmetros separados por vírgula:
● um string de formato que define, através de caracteres especiais, os tipos dos dados a
serem lidos e armazenados;
● um variável para armazenar o valor (o & indica que o valor lido será colocado no endereço
de memória da variável utilizada).
Sintaxe: scanf(“%string_formatos”,&variáveis);
A entrada também pode ser formatada de forma mais organizada com o emprego de
especificadores de formato de entrada.
Vamos refletir?
Digite o código e teste.
415
MÓDULO II - LÓGICA DE PROGRAMAÇÃO
Vamos refletir?
Digite o código e teste.
416
MÓDULO II - LÓGICA DE PROGRAMAÇÃO
Imagine que nosso programa tem uma função para “qualificar” a temperatura:
Comando if e if else
O comando if ou if else são os comandos básicos para codificar uma tomada de decisão. A
estrutura avalia uma condição inicial e de acordo com o resultado lógico dessa expressão toma
a decisão se executa os seus blocos ou o bloco. Observe a sintaxe básica desse comando.
if (condição) {
< bloco de comando executados se VERDADEIRO >
}
if (condição) {
Vamos refletir?
Digite os códigos e
teste.
418
MÓDULO II - LÓGICA DE PROGRAMAÇÃO
Imagine que nosso programa tem uma função para “qualificar” a temperatura:
Vamos refletir?
Digite o código e teste.
419
MÓDULO II - LÓGICA DE PROGRAMAÇÃO
Estrutura de bloco
A declaração de variáveis só pode ocorrer no início do corpo de uma função (principal ou não)
ou de um bloco.
O escopo de uma variável dentro de um bloco de código ou função é restrito a este espaço.
Uma variável declarada dentro de um bloco existe apenas dentro desse bloco (ou função). Ao
término do bloco (ou função) ela deixa de existir.
Vamos refletir?
Digite o código e teste.
420
MÓDULO II - LÓGICA DE PROGRAMAÇÃO
Vamos refletir?
Digite o código e teste.
421
MÓDULO II - LÓGICA DE PROGRAMAÇÃO
Expressão Condicional
A expressão condicional não precisa ser uma expressão no sentido convencional. Pode ser o
valor de uma variável sendo avaliada pelo compilador.
Uma expressão condicional é a avaliação de uma condição, variável ou valor pelo compilador
que usa seu valor de retorno para tomar uma decisão.
Uma variável sozinha pode ser uma “expressão” e o compilador pode usar seu próprio valor
para avaliar uma condição.
Operador Ternário ( ? : )
Vamos refletir?
Digite o código e teste.
423
MÓDULO II - LÓGICA DE PROGRAMAÇÃO
Comando “ switch ”
A estrutura de seleção “switch” seleciona uma opção, dentre os diversos casos disponíveis, de
acordo com a avaliação da expressão (valor) apresentada. Em linguagem C, a opção (OPn) deve
ser um inteiro ou caractere.
Sintaxe:
switch( expressão )
{
case op1: bloco de comandos; break;
case op2: bloco de comandos; break;
...
default: bloco de comandos; break;
}
424
MÓDULO II - LÓGICA DE PROGRAMAÇÃO
Vamos refletir?
Digite o código e teste.
425
MÓDULO II - LÓGICA DE PROGRAMAÇÃO
Estruturas de Repetição
Agora que começa a parte divertida da programação! Vamos pensar utilizando exemplos
práticos! Como calculamos o fatorial de um número?
Para começar a compreender como fazemos esse cálculo utilizando programação, é necessário
relembrar primeiro como realizamos o cálculo do fatorial de um número matematicamente.
Lembre-se é preciso primeiro entender a lógica do problema e sua resolução para depois
realizar a codificação.
426
Fonte: Elaborada pelo autor.
MÓDULO II - LÓGICA DE PROGRAMAÇÃO
Comando “ while ”
Sintaxe:
while ( condição )
{
<bloco de comandos>
}
Vamos refletir?
Digite o código e teste.
427
MÓDULO II - LÓGICA DE PROGRAMAÇÃO
Comando “ for ”
Vamos refletir?
Digite o código e teste.
428
MÓDULO II - LÓGICA DE PROGRAMAÇÃO
Vamos refletir?
Digite o código e teste.
429
MÓDULO II - LÓGICA DE PROGRAMAÇÃO
Comando “ do while ”
Estrutura de repetição que realiza a execução do bloco de comandos de código primeiro (uma
vez) e depois testa a expressão (condição) avaliada. Se a condição for verdadeira repete o
processo novamente (executa e testa). É uma repetição com teste no final da estrutura.
Sintaxe:
do
{ <bloco de comandos> }
while ( <condição> );
Vamos refletir?
Digite o código e teste.
430
MÓDULO II - LÓGICA DE PROGRAMAÇÃO
Comando “ break ”
Comando que realiza a interrupção de um laço de repetição, ou seja, ele termina a execução
de uma estrutura de repetição.
Comando “ continue ”
Comando que termina a iteração corrente (execução do momento) e passa para o próximo
incremento (volta) da estrutura de repetição.
Vamos refletir?
Digite o código e teste.
431
MÓDULO II - LÓGICA DE PROGRAMAÇÃO
Vamos refletir?
Digite o código e teste.
Não se esqueça! A primeira preocupação deve ser em conhecer muito bem o problema, pois
assim será possível refletir sobre ele e, desta forma, encontrar uma solução segura e eficaz
para a sua resolução.
432
MÓDULO II - LÓGICA DE PROGRAMAÇÃO
Saiba mais!
Acesse:
https://www.youtube.com/watch?v=3_kvlGGgfW8&index=1&list=PL65GXbMNWBWZ85GBjU
BuG6lwjO8WwihKH
433
MÓDULO II - LÓGICA DE PROGRAMAÇÃO
Vamos rever?
Vamos rever?
435
MÓDULO II - LÓGICA DE PROGRAMAÇÃO
Vamos rever?
436
MÓDULO II - LÓGICA DE PROGRAMAÇÃO
Sites indicados
Audiovisuais indicados
1) Curso de C - eXcript
https://www.youtube.com/playlist?list=PLesCEcYj003SwVdufCQM5FIbrOd0GG1M4
Questões de autoaprendizagem
b) Desenvolver um algoritmo para ler o número de uma sala de aula, sua capacidade e
o total de alunos matriculados e imprimir uma linha mostrando o número da sala,
sua capacidade, o número de cadeiras ocupadas e sua disponibilidade indicando se
a sala está lotada ou não.
438
MÓDULO II - LÓGICA DE PROGRAMAÇÃO
a)
439
MÓDULO II - LÓGICA DE PROGRAMAÇÃO
b)
440
MÓDULO II - LÓGICA DE PROGRAMAÇÃO
c)
441
MÓDULO II - LÓGICA DE PROGRAMAÇÃO
d)
442
MÓDULO II - LÓGICA DE PROGRAMAÇÃO
Para compilar códigos em C++ podemos utilizar o compilador nativo do GNU/Linux. Basta
criar um arquivo de texto que contenha o código fonte e gravar com um editor de textos
qualquer. O processo é simples. Tudo que tem a fazer é acessar um terminal (shell), digitar o
comando de compilação e pronto.
2) Depois crie um arquivo utilizando um editor do GNU/Linux. Neste caso, usamos o nano.
Digite o código fonte mostrado na Figura 19.
$ nano testa_ambiente.cpp
443
Fonte: Elaborada pelo autor.
MÓDULO II - LÓGICA DE PROGRAMAÇÃO
Outra forma bastante prática de executar códigos em C++ é utilizar um compilador online.
Para utilizar com C++ basta acessar o endereço: https://repl.it/languages/cpp
Na orientação a objetos, avançamos para uma nova abordagem que contém classes, objetos,
atributos e métodos, dentre outros conceitos que nos ajudam a descrever o mundo real. É um
processo de otimização da produção e manutenção de código no desenvolvimento de sistemas.
Os primeiros estudos sobre POO (Programação Orientada a Objetos) ocorreram no início na
década de 60 no Instituto de Tecnologia de Massachusetts (MIT), Estados Unidos.
A programação orientada a objetos nos permite (fundamenta-se em) associar objetos do mundo
real para o ambiente de programação. Em nosso dia a dia, conseguimos distinguir um
enumerado de coisas no mundo real, como, por exemplo, animais, casas, carros, pessoas,
árvores etc. Cada objeto do mundo real pode ser descrito por meio de suas características e
informações.
445
MÓDULO II - LÓGICA DE PROGRAMAÇÃO
Neste tópico, será possível explorar todas essas características na Linguagem de Programação
C++, pois ela suporta a orientação a objetos e, mesmo assim, continua compatível com C e a
programação estruturada. C++ é uma extensão da linguagem C.
Abstração
Figura 22 - Abstração
O ser humano se relaciona com o mundo através do conceito de objetos. Estamos sempre
identificando qualquer objeto ao nosso redor. Para isso lhe damos nomes e, de acordo com suas
características, lhes classificamos em grupos, ou seja, classes.
● Cada método (função) tem uma assinatura (seu identificador - nome, tipo para o valor de
retorno e sua lista de argumentos com tipo e nome também).
● A sobrecarga de métodos é quando dois métodos da classe tem o mesmo nome, porém
com assinaturas (argumentos) diferentes.
447
MÓDULO II - LÓGICA DE PROGRAMAÇÃO
Objetos
Exemplos de objetos:
A Figura 24 apresenta dois exemplos de classes. No primeiro, a classe “Aluno” e duas instâncias
“Ronald” e “Helena” com seus atributos (dados). Podemos dizer que são dois objetos (Ronald e
Helena. Observe que a classe possui atributos e métodos.
448
Fonte: Elaborada pelo autor.
MÓDULO II - LÓGICA DE PROGRAMAÇÃO
Vamos observar um exemplo da classe Pessoa com seus atributos e métodos na Figura 25. A
classe apresenta três atributos e três métodos.
A implementação de uma classe em C++ deve ser feita antes da declaração da função principal
main(). Neste caso, ela terá o escopo global e poderá ser utilizada em qualquer parte do
código. A declaração começa com a palavra reservada class. Observe, na Figura 26, o exemplo
de declaração da classe Pessoa em C++.
449
Fonte: Elaborada pelo autor.
MÓDULO II - LÓGICA DE PROGRAMAÇÃO
Escolha o seu compilador C++ e digite o código abaixo para testar o funcionamento.
Experimente fazer modificações no programa.
Os objetos são a abstração de uma entidade do mundo real e que possuem características
(valores). Eles são instâncias de uma determinada classe. Sob o ponto de vista da programação
orientada a objetos, um objeto não é muito diferente de uma variável normal.
Um objeto armazena seu estado em campos (variáveis) e expõe seu comportamento através de
métodos (funções).
450
MÓDULO II - LÓGICA DE PROGRAMAÇÃO
Não se esqueça! No paradigma de POO, o programa é formado por um conjunto de classes que
são modelos para criação de objetos.
As classes e objetos têm membros que são dados privados e métodos de acesso que são as
funções.
Quando um trecho de código quer fazer uma operação sobre um objeto, ele emite uma
mensagem requisitando a operação utilizando a chamada de função (método).
Encapsulamento
● Os atributos de uma classe são acessíveis apenas pelos métodos da própria classe.
● Outras classes só podem acessar os atributos de uma classe invocando os métodos
públicos.
● Restringe a visibilidade do objeto, mas facilita o reuso.
Ocultação da Informação
A ocultação da Informação é o princípio pelo qual cada componente deve manter oculta sob sua
guarda uma decisão de projeto única. Para a utilização desse componente, apenas o mínimo
necessário para sua operação deve ser revelado (tornado público).
Não se esqueça! Encapsulamento é justamente o fato dos dados não estarem acessíveis
diretamente, mas apenas através dos métodos permitidos na classe.
451
MÓDULO II - LÓGICA DE PROGRAMAÇÃO
+ Public
Quem tem acesso à classe tem acesso também a qualquer membro com visibilidade public. É
raro ter atributos públicos, mas é comum ter métodos públicos.
- Private
O membro private não é acessível fora da classe. A intenção é que apenas quem escreve a
classe possa usar esses membros.
# Protected
O membro protected é acessível à classe e as suas subclasses. A intenção é dar acesso aos
programadores que estenderão a sua classe.
Construtor
O construtor é uma estrutura especial da classe (um método). Seu objetivo é definir a
configuração inicial de uma classe. Ele é utilizado quando existem atributos da classe que são
essenciais para o funcionamento do objeto, porém são atributos de uma instância e, assim,
variam de acordo com cada objeto.
Destrutor
O destrutor é uma estrutura especial da classe (um método). Ele é responsável por limpar a
memória ou atributos utilizados na execução da classe.
452
MÓDULO II - LÓGICA DE PROGRAMAÇÃO
453
MÓDULO II - LÓGICA DE PROGRAMAÇÃO
Vamos praticar?
A linha 5 indica que os atributos (dados) da classe Pessoa são privados. Ela está protegendo
os dados de acesso direto.
private:
A classe Pessoa possui o método (função) chamado CadastrarPessoa() que não recebe nenhum
parâmetro e não retorna nenhum valor.
void CadastrarPessoa()
{
cout<<”\nNome:”; // Imprime a variável na tela (semelhante ao printf)
cin.getline(Nome,30); // armazena o valor em Nome (semelhante ao scanf)
cout<<”\nCPF:”;
cin.getline(Cpf,12); // armazena o valor em Cpf (semelhante ao scanf)
cout<<”\nAno Nascimento:”;
cin>>AnoNasc; // armazena o valor em AnoNasc (semelhante ao scanf)
};
A classe Pessoa possui o método (função) chamado ImprimirPessoa() que não recebe nenhum
parâmetro e não retorna nenhum valor.
void ImprimirPessoa()
{
cout<<”\n------------------\n”; // Imprime na tela (semelhante ao printf)
cout<<Cpf<<”\n”; // Imprime a variável na tela
cout<<Nome<<”\n”;
cout<<AnoNasc;
cout<<”\n------------------\n”;
};
455
MÓDULO II - LÓGICA DE PROGRAMAÇÃO
Dentro da função principal main(), fazemos uso da classe Pessoa para instanciar um objeto p e
depois utilizamos os métodos (funções) do objeto para carregar e exibir os seus dados
(atributos).
456
MÓDULO II - LÓGICA DE PROGRAMAÇÃO
Vamos praticar?
a.nome = "Ronald";
Uma superclasse pode ser herdada por diversas subclasses. Nesta imagem, a classe Animal é
herdada pelas classes: quadrúpedes, aquáticos e aves. Desta forma, a superclasse Animal possui as
mesmas características que as outras subclasses.
Sobreposição
Observe as três classes abaixo na Figura 29. Elas possuem características comuns e podem ser
fatoradas (agrupadas em uma classe comum). Essas semelhanças (itens comuns) estão
SUBLINHADAS para destacar.
A partir dessas três classes, vamos gerar uma SUPERCLASSE utilizando o conceito de HERANÇA.
459
MÓDULO II - LÓGICA DE PROGRAMAÇÃO
Observe agora, na Figura 30, a mesma estrutura, utilizando herança, na qual pessoa é uma
superclasse e professor, aluno e funcionário são três subclasses de pessoa.
PESSOA
Dados Operações
Nome AtualizarEndereço
Endereço IncluirDadosPessoais
Nasc LerDadosPessoais
460
MÓDULO II - LÓGICA DE PROGRAMAÇÃO
Vamos observar, agora, um exemplo prático de Herança em C++ na Figura 31. O processo de
herança está materializado na linha:
461
MÓDULO II - LÓGICA DE PROGRAMAÇÃO
Polimorfismo
O Polimorfismo torna possível reimplementar métodos de uma classe básica na classe mais
especializada e, posteriormente, tratar diversos objetos diferentemente especializados através
dos mesmos métodos.
Ligação dinâmica
O polimorfismo ocorre quando uma mesma mensagem, chegando a objetos diferentes, provoca
respostas diferentes. Ligação dinâmica é a chave para fazer polimorfismo.O Compilador não
gera o código para chamar o método em tempo de compilação, em vez disso, cada vez que se
aplica um método a um objeto, o compilador gera código para calcular que método deve ser
chamado, usando informações de tipo do objeto. Na ligação dinâmica, as bibliotecas são
carregadas e descarregadas da memória conforme solicitadas durante a execução do programa.
462
MÓDULO II - LÓGICA DE PROGRAMAÇÃO
Vamos praticar?
463 (continua…)
MÓDULO II - LÓGICA DE PROGRAMAÇÃO
464
MÓDULO II - LÓGICA DE PROGRAMAÇÃO
Vamos praticar?
465 (continua…)
MÓDULO II - LÓGICA DE PROGRAMAÇÃO
Vamos praticar?
466
MÓDULO II - LÓGICA DE PROGRAMAÇÃO
Figura 32 - Humor
Saiba mais!
Você ainda está em dúvida em como instalar um ambiente para desenvolver com POO e
C++?
Acesse o site:
https://agostinhobritojr.github.io/tutorial/cpp/
468
MÓDULO II - LÓGICA DE PROGRAMAÇÃO
Vamos rever?
470
MÓDULO II - LÓGICA DE PROGRAMAÇÃO
Vamos rever?
471
MÓDULO II - LÓGICA DE PROGRAMAÇÃO
Sites indicados
4) Curso C++
http://excript.com/curso-cpp.html
Audiovisuais indicados
1) Curso C++
https://www.youtube.com/playlist?list=PLesCEcYj003QTw6OhCOFb1Fdl8Uiqyrqo
4) Partiu C++
https://www.youtube.com/playlist?list=PLG6ZmQok0kq8EitPWzqmTxJfdt4MyHtUM
472
MÓDULO II - LÓGICA DE PROGRAMAÇÃO
Questões de autoaprendizagem
a) Digite o código abaixo e teste. Altere o programa para criar mais dois atributos na
Classe Aluno (CPF e Identidade). Ajuste o código para permitir o carregamento e a
exibição dos dados corretamente. Crie mais um objeto “b” a partir da Classe
Aluno.
Questões de autoaprendizagem
474
MÓDULO II - LÓGICA DE PROGRAMAÇÃO
Questões de autoaprendizagem
475
MÓDULO II - LÓGICA DE PROGRAMAÇÃO
Glossário
● alto nível - são aquelas que estão mais próximas da linguagem humana, ou seja,
são mais fáceis de compreensão. São mais simples, pois utilizam uma sintaxe
estruturada, assim seu código é mais legível.
Glossário
Glossário
● Classe abstrata - aquela definida para generalizada para que atenda a diversos
objetivos. Classe base - nome dado a uma classe herdada por outra(s) classe(s).
● Classe derivada - nome dado a uma classe que herda características de outra
classe. Classe filha - o mesmo que classe derivada.
Glossário
● Constante - É um tipo abstrato de dado que é armazenado, porém, esse dado não
pode ser alterado, ou seja, não sobre nenhuma variação no decorrer do tempo.
Glossário
● Elseif (Senão SE) – estrutura lógica de decisão dentro de outra estrutura lógica de
decisão.
● For (laço para) – esse laço contém uma condição inicial, uma condição final e um
passo.
Glossário
● Métodos - funções que determinam qual o comportamento que uma classe terá.
481 ● Objetos - tudo na POO é objeto; os objetos; são exemplares de uma classe
qualquer.
MÓDULO II - LÓGICA DE PROGRAMAÇÃO
Glossário
● Override - indica que o método com este escopo será sobrescrito em alguma classe
derivada.
Glossário
● switch (significa escolha) – avalia o valor da variável X e caso X seja igual ao valor
1, executa instrução 1, se for igual ao valor 2, executa instrução 2, se for igual ao
valor 3, executa instrução 3 e assim sucessivamente.
● while (laço enquanto) – enquanto uma condição for verdade, continua repetindo a
instrução.
483
MÓDULO II - LÓGICA DE PROGRAMAÇÃO
Referências
BROWN, Tim. Design Thinking. Uma Metodologia Poderosa para Decretar o Fim das
Velhas Ideias. Alta Books, 2017.
FREEMAN, Eric. FREEMAN, Elisabeth. Use a Cabeça! HTML com CSS e XHTML. Alta
Books, 2008.
484
Mensagem de Boas-Vindas
Este capítulo não visa formar web designers profissionais, e sim, apresentar
importantes conceitos, que serão úteis no desenvolvimento de sistemas e na
customização de templates.
Sabe o que são templates? Neste contexto, são modelos prontos de sites, que já
vêm com todo o básico que você precisa em termos de HTML, CSS e JavaScript.
Assim, basta você colocar o seu conteúdo e adaptar a formatação, usando os
fundamentos de WebDesign que você verá neste curso.
Você que adora acessar a internet, ver o seu youtuber preferido, ou acessar a sua
página do Facebook, já parou para pensar como aquelas páginas são feitas?
Bom, tudo começa com uma ideia, que se junta às ideias de outras pessoas
criativas. Essa criatividade deve ser traduzida em uma interface que seja fácil e
agradável de aprender e de usar. A isso chamamos de usabilidade, um dos tópicos
deste curso.
486
No final, tudo precisa ser codificado de forma que o seu navegador entenda. Essa
codificação pode estar dividida em camadas. Nesse caso, podemos utilizar o HTML, o
CSS e o JavaScript.
Você pode estar pensando... é muita coisa!!! Que nada, com o tempo você verá que
tudo é muito mais diversão que trabalho ou estudo. Mas apenas para você ter uma
ideia, vou apresentar os principais conceitos.
O CSS define o estilo da sua página, sem se importar com o conteúdo. Em outras
palavras, o CSS é um texto no qual você pode definir, por exemplo, que todas as
tabelas terão uma fonte com a cor vermelha, independente de qual tabela será
usada.
487
Arquitetura de Informação
Olá! Leitor,
Para iniciar o estudo sobre Web Design é essencial que você conheça os aspectos básicos
relacionados à Arquitetura de Informação. Portanto, nesta primeira unidade você
estudará os conceitos de usabilidade, acessibilidade e legibilidade. Também descobrirá
um pouco sobre os fundamentos e padrões de desenho para Web. Além disso, você vai
conhecer sobre interfaces para sites, web e portais.
488
UNIDADE I - FUNDAMENTOS DE WEBDESIGN
1.1 Usabilidade
Você já parou para pensar nos equipamentos que você usa no dia a dia? Quais deles são
realmente fáceis de usar? Quais deles você aprendeu a usar com facilidade?
Você pode ter certeza, todos os equipamentos que são fáceis de usar foram projetados tendo o
usuário em mente.
Veja dois exemplos de um controle remoto de TV. Qual deles parece ser mais fácil de usar?
Esperto como você é, já deve ter percebido que um controle remoto com menos botões, mais
leve e menor, que faz coisas semelhantes, é muito mais fácil de usar e muito mais fácil de
aprender a usar.
489
UNIDADE I - FUNDAMENTOS DE WEBDESIGN
Os mesmos problemas vistos nos equipamentos podem ser identificados em sites considerados
ruins na internet. Vejamos, a seguir, um exemplo bom e um ruim:
• Exemplo positivo:
O site de busca da Google tem uma finalidade principal, fazer pesquisas na internet,
então sua página, simples e direta, reflete bem isso.
• Exemplo negativo:
O site de Compras Governamentais têm evoluído bastante nos últimos tempos. É um
importante portal governamental, tanto para os gestores, quanto para os fornecedores.
Entretanto, esse portal também é responsável pela divulgação e a realização das
licitações. Desafio você a localizar, em menos de 3 minutos, as licitações que foram
abertas, na área de informática, nos últimos 30 dias.
490
UNIDADE I - FUNDAMENTOS DE WEBDESIGN
Você conseguiu perceber o problema? Sabe é qual o grande problema dos exemplos negativos?
Não foram projetados tendo o usuário em mente, e sim, o próprio desenvolvedor ou o gestor do
ambiente. Problemas desse tipo interferem diretamente no que chamamos de usabilidade.
491
UNIDADE I - FUNDAMENTOS DE WEBDESIGN
Vamos refletir?
Eu falei que um site tem uma boa interface, se a maioria dos usuários achá-la agradável
e fácil de usar. Eu disse também que para que isso aconteça, a mesma tem que ser
desenvolvida pensando no usuário. Isso parece óbvio, mas em muitos casos, o
desenvolvedor (profissional que trabalha com web designer), cria uma página
imaginando o que o usuário quer ver, sem perguntar para os usuários.
É fácil dizer que uma página deve ter boa usabilidade, mas como fazer isso
na prática? Será que existe algum documento que ajude o desenvolvedor a
criar páginas com boa usabilidade?
492
UNIDADE I - FUNDAMENTOS DE WEBDESIGN
Saiba mais!
A NBR 9241 consiste das seguintes partes, sob o título geral de Requisitos
ergonômicos para trabalho de escritório com computadores. E a parte 11 refere-se
às orientações sobre usabilidade.
Fonte: http://www.labiutil.inf.ufsc.br/cpqd-capacitacao/iso9241-11F2.doc
493
UNIDADE I - FUNDAMENTOS DE WEBDESIGN
1.2 Acessibilidade
Quando eu disse que uma página deve ser fácil de usar, eu também me referi às pessoas
com necessidades especiais, ou seja, devem ser considerados os critérios de acessibilidade.
E você sabe o que é acessibilidade?
Imagem 5 - Acessibilidade
Fonte:
https://pixabay.com/pt/illustrations/acessibilidade-de
fici%C3%AAncia-1682903/
494
UNIDADE I - FUNDAMENTOS DE WEBDESIGN
Mesmo que você não esteja desenvolvendo um sistema para o Governo Federal, esse site
ainda assim é uma referência, pois as recomendações do eMAG “permitem que a
implementação da acessibilidade digital seja conduzida de forma padronizada, de fácil
implementação, coerente com as necessidades brasileiras e em conformidade com os
padrões internacionais”.
Além disso, deve-se seguir as recomendações do World Wide Web Consortium (W3C), que é
uma comunidade internacional que desenvolve padrões com o objetivo de garantir o
crescimento da web.
Saiba mais!
495
UNIDADE I - FUNDAMENTOS DE WEBDESIGN
Saiba mais!
496
UNIDADE I - FUNDAMENTOS DE WEBDESIGN
Saiba mais!
Fonte: https://www.gov.br/governodigital/pt-br/acessibilidade-digital/eMAGv31.pdf
497
UNIDADE I - FUNDAMENTOS DE WEBDESIGN
Saiba mais!
A W3C disponibiliza uma cartilha, que apresenta vários critérios de
usabilidade que você deve observar quando for desenvolver o seu site. A
referida cartilha destaca os seguintes objetivos:
• O que é acessibilidade? Usar uma linguagem simples e de fácil entendimento, de modo que
todos possam compreender o assunto acessibilidade;
• Como fazer um site acessível? A W3C apresenta recomendações e diretrizes que devem ser
seguidas por desenvolvedores, de modo a minimizar ou eliminar as dificuldades de acesso
dos grupos indicados no item anterior;
• Como exigir acessibilidade? A W3C apresenta em sua cartilha algumas orientações sobre
como devem proceder para cobrar a acessibilidade em sites web.
Fonte:
https://www.w3c.br/pub/Materiais/PublicacoesW3C/cartilha-w3cbr-acessibilidade-web-fasciculo
-I.html
498
UNIDADE I - FUNDAMENTOS DE WEBDESIGN
1.3 Legibilidade
Você já percebeu que alguns sites usam cores que dificultam a leitura?
Eles usam uma combinação de cores de fundo que atrapalha a identificação das letras do texto
apresentado no site, ou usam letras muito pequenas. Esses são problemas de legibilidade.
Em outras palavras, um site é legível quando todas as informações apresentadas na tela podem
ser lidas sem dificuldade.
Como que você garante legibilidade? Comprando um óculos para o leitor?? (risos)
É claro que não! Então, o que é preciso para garantir a legibilidade em um site?
499
UNIDADE I - FUNDAMENTOS DE WEBDESIGN
Para garantir a legibilidade em um site, você deve ficar atento, por exemplo, ao brilho do
caractere, ao tamanho da fonte, ao contraste letra/fundo, ao espaçamento entre entre as
linhas, ao espaçamento entre os parágrafos.
Imagem 6 - Legibilidade
Fonte: http://institucional.zapgrafica.com.br/wp-content/uploads/2012/05/dicas_especiais_efeitos_02.png
Quando você procura que seu site tenha um bom desempenho, deve facilitar a leitura da
informação apresentada. Para isso, o desenvolvedor do site deve levar em conta duas
características dos usuários: a primeira diz respeito ao cognitivo, que está relacionada com o
processo de aquisição de conhecimento; a segunda está relacionada à percepção pelos sentidos.
500
UNIDADE I - FUNDAMENTOS DE WEBDESIGN
Saiba mais!
• Quando o espaço para o texto for limitado, mostrar poucas linhas longas ao invés de muitas
linhas curtas;
• Exibir texto contínuo em colunas largas de, ao menos, 50 caracteres por linha;
• A justificação à direita deve ser empregada se puder ser obtida por espaçamento, desde que
sejam mantidos espaçamentos proporcionais constantes entre e nas palavras e espaçamento
consistente entre palavras de uma linha;
501
UNIDADE I - FUNDAMENTOS DE WEBDESIGN
Você conhece todos os principais formatos de imagens utilizados atualmente? Existem dezenas
de formatos de imagens.
Vamos refletir?
Observe a tabela a seguir que apresenta uma comparação entre as características dos
principais formatos de imagens, considerando a mesma imagem, com o tamanho de 840 x 560.
502
UNIDADE I - FUNDAMENTOS DE WEBDESIGN
Principais Tamanho
Formato Características
Usos do Arquivo
(continua…)
503
UNIDADE I - FUNDAMENTOS DE WEBDESIGN
Muito
grande
Uso
(tamanho
profissional ∙ guarda todos os dados da imagem, tal como
RAW captada pelo sensor da câmera fotográfica, depende da
de fotografia sem aplicação de efeitos ou ajustes
máquina
fotográfica)
1
JPEG: realiza a compactação da imagem original, com perdas de informação. Porém, se efetuada dentro de
certos limites, as perdas não são perceptíveis ao olho humano.
504
UNIDADE I - FUNDAMENTOS DE WEBDESIGN
• Ignorância em relação aos usuários: não sabe ao certo quais são as características do usuário
da interface e nem o que a mesma deveria ter para deixá-los felizes;
• Falta de processo para entender as necessidades dos usuários: nem sempre são
estabelecidos processos para realmente entender o que o usuário final da interface precisa.
505
UNIDADE I - FUNDAMENTOS DE WEBDESIGN
Saiba mais!
• Design Thinking: a ideia principal é pensar numa solução utilizando diferentes pontos de
vista, de forma colaborativa e coletiva, envolvendo todas as pessoas relacionadas com o
projeto, desde os patrocinadores até os usuários finais. E tudo fica melhor se envolver
pessoas com vivências e formações diferentes, em equipes multidisciplinares. Assim,
teremos diferentes modos de ver os problemas, testando diversas ideias e encontrando
possíveis soluções.
• User Experience (UX): o ponto focal dessa abordagem é como tornar a experiência do
usuário da interface mais fácil e útil. Ou seja, focar na usabilidade, com a apresentação
do conteúdo disposta de forma lógica, do ponto de vista da experiência do usuário.
Assista a este vídeo da Canaltech Startups e saiba um pouco mais sobre “O que é UX (User
Experience)? E o que NÃO é UX?”. Disponível em: https://www.youtube.com/watch?v=2hfu_F4cDRQ .
506
UNIDADE I - FUNDAMENTOS DE WEBDESIGN
Questões de autoaprendizagem
Vamos supor que você seja ligado no mundo da internet. Nesse caso,
talvez seja fácil imaginar uma nova interface para um novo tablet, que acessaria sua
série favorita do Netflix (Stranger Things??) ou os vídeos do seu Youtuber preferido
(Whindersson Nunes??). Mas vamos tirar você da sua zona de conforto.
Gostaria que você imaginasse uma nova interface do tablet para um público específico,
o idoso. Imagine as funcionalidades que esse tablet deveria ter e faça um esboço da
tela inicial.
Solução...
Entendeu que se colocar no lugar do outro, no caso, o usuário, é necessário e deve ser
feito com cuidado? Então, você precisa ouvir o usuário, conhecer o perfil da pessoa que
irá utilizar, saber onde serão utilizados, conhecer as atividades que as pessoas estão
realizando quando interagem com o produto (que pode ser um site) e imaginar como
você poderia fazer para otimizar a interação do usuário com o sistema.
507
UNIDADE I - FUNDAMENTOS DE WEBDESIGN
Imagem 7 - TabSênior
Fonte: https://canaltech.com.br/tablet/conheca-o-primeiro-tablet-para-idosos-do-brasil-97290/
508
UNIDADE I - FUNDAMENTOS DE WEBDESIGN
Vamos rever!
Nesta unidade você descobriu o que seria um bom projeto de interface.
Você viu que um bom projeto deve ter o usuário como foco central.
Parece óbvio, mas quantas vezes você já entrou em um site ruim,
difícil de usar e chato para aprender.
Nesta unidade, você também conheceu alguns padrões de formato de imagens. Talvez
você nunca tenha usado alguns desses formatos, mas agora já possível utilizar novas
formas e fazer coisas bonitas, diferentes e ao mesmo tempo usuais, acessíveis e legíveis
sempre com foco no usuário. Pode ter certeza!
Por fim, identificamos algumas estratégias para elaborar interfaces agradáveis e fáceis
de usar.
Sites indicados
509
UNIDADE I - FUNDAMENTOS DE WEBDESIGN
Glossário
• Acessibilidade
É um atributo essencial do ambiente que garante a melhoria da qualidade de vida das
pessoas. Deve estar presente nos espaços, no meio físico, no transporte, na informação e
comunicação, inclusive nos sistemas e tecnologias da informação e comunicação, bem como
em outros serviços e instalações abertos ao público ou de uso público, tanto na cidade como
no campo.
Fonte:
https://www.gov.br/mdh/pt-br/navegue-por-temas/pessoa-com-deficiencia/programas/acessibilidade
• Legibilidade
Diz respeito às características lexicais das informações apresentadas na tela que possam
dificultar ou facilitar a leitura desta informação (brilho do caractere, contraste letra/ fundo,
tamanho da fonte, espaçamento entre palavras, espaçamento entre linhas, espaçamento de
parágrafos, comprimento da linha, etc.).
Fonte: http://www.labiutil.inf.ufsc.br/CriteriosErgonomicos/LabIUtil2003-Crit/140legib_A.html
• Usabilidade
Estudo ou a aplicação de técnicas que proporcionem a facilidade de uso de um dado objeto,
no caso, um sítio.
Fonte: http://epwg.governoeletronico.gov.br/cartilha-usabilidade
510
HyperText Markup Language - HTML
Olá! Leitor,
Que bom que você continua seus estudos!
511
UNIDADE II - FUNDAMENTOS DE WEBDESIGN
Quando todo mundo começou a usar o HTML, as coisas estavam um pouco confusas, sem um
padrão. Então, em 1990 o HTML foi formalizado como uma linguagem, seguindo determinados
padrões. Nessa mesma linha, em 1994, Berners-Lee criou o famoso World Wide Web
Consortium, também conhecido com W3C, que é um consórcio com cerca de 400 membros, cujo
objetivo principal é a padronização da World Wide Web, também conhecida como rede mundial
de computadores ou simplesmente web.
Segundo a W3C, sempre se buscou novos recursos para o HTML, que continuam a ser
introduzidos para ajudar os autores de aplicativos da Web. Desse modo, novos elementos
continuam a ser introduzidos com base na pesquisa sobre as práticas de autoria prevalecentes.
512
UNIDADE II - FUNDAMENTOS DE WEBDESIGN
Saiba mais!
O Consórcio World Wide Web (W3C) é um consórcio internacional, no
qual organizações filiadas, uma equipe em tempo integral e o público
trabalham juntos para desenvolver padrões para a Web. Liderado pelo
inventor da web, Tim Berners-Lee e o CEO Jeffrey Jaffe, o W3C tem como missão
conduzir a World Wide Web para que atinja todo seu potencial, desenvolvendo
protocolos e diretrizes que garantam seu crescimento de longo prazo.
Fonte: http://www.w3c.br/Home/WebHome
513
UNIDADE II - FUNDAMENTOS DE WEBDESIGN
Você sabia?
514
UNIDADE II - FUNDAMENTOS DE WEBDESIGN
2.2 Editores
Eu já falei para você um pouco sobre a evolução do HTML.
Agora, para colocar em prática, vamos desenvolver um código HTML e vamos criar uma página
web.
Por onde você deve começar? Afinal do que você precisa para criar um código HTML?
A rigor, basta ter um editor de texto simples (bloco de notas) para criar um código HTML (neste
caso você deve salvar como um arquivo .html) e um navegador para visualizar o resultado do
referido código. Existem dezenas de ambientes de desenvolvimento. Vou apresentar para você
os principais.
² GNU General Public License (Licença Pública Geral GNU), GNU GPL ou simplesmente GPL.
Fonte: http://www.gnu.org/
515
UNIDADE II - FUNDAMENTOS DE WEBDESIGN
Testando os exemplos
Para entender a teoria sobre HTML, é muito importante testar os exemplos e praticar. Vou
apresentar como fazer esses testes, de uma maneira muito simples. Para isso, peço que você
siga estes passos
Código HTML
<html>
<body>
Exemplo de uma página HMTL
</body>
</html>
Resultado no navegador
516
UNIDADE II - FUNDAMENTOS DE WEBDESIGN
Agora que você já sabe que precisa praticar, vamos aprender alguns conceitos iniciais.
Por exemplo, como um navegador sabe o que é um texto simples e o que é um código
HTML?
Os códigos HTML ficam entre as marcações (ou também chamadas tags) < e >, que
geralmente são apresentadas aos pares, ou seja, <marcação> e </marcação>.
Exemplo:
Entretanto, há algumas exceções para o funcionamento aos pares, que eu vou explicar à
medida que elas forem aparecendo, mas já podemos citar a marcação que indica um
parágrafo <p> que não necessita, obrigatoriamente, de um </p>.
517
UNIDADE II - FUNDAMENTOS DE WEBDESIGN
Você sabia?
O navegador é um aplicativo que interpreta códigos em HTML, permitindo a
interação do usuário com o conteúdo apresentado em uma página web. Esses
aplicativos têm evoluído muito, acompanhando a evolução das tecnologias.
Hoje existem diversos navegadores, desenvolvidos por diferentes empresas.
Por exemplo:
Chrome da Google
Firefox da Mozilla
Safari da Apple
Existe um padrão estabelecido pela W3C e determinadas exigências de mercado, mas não
existe uma lei que obrigue todos os desenvolvedores de navegadores a seguir tais padrões e
exigências. E se o navegador não entende uma determinada marcação, ele simplesmente a
ignora. Portanto, é importante realizar um cross-browser, ou seja, testar uma determinada
página em diferentes navegadores.
Existem diversas soluções online que podem lhe ajudar a realizar esses testes. Veja alguns
exemplos:
• Browsera. Disponível em: <https://turbo.net/browsers>
• Browserling. Disponível em: <https://www.browserling.com/>
• Browsershots. Disponível em: <http://browsershots.org/>
• IE NetRenderer. Disponível em: <http://netrenderer.com/index.php>
• Viewlike.us. Disponível em: <https://www.viewlike.us/>>
518
UNIDADE II - FUNDAMENTOS DE WEBDESIGN
Além da marcação <html> existem outras, que podem ser consideradas as marcações mínimas
de uma página. Preste atenção!
Você sabia?
Apesar de existir um padrão, na hora em que você está digitando seu código
HTML, pode acontecer de você trocar alguma letra maiúscula pela
equivalente minúscula e vice-versa. Não esquente a cabeça com isso!!! As
marcações HTML não são “case sensitive”, não diferenciam letras maiúsculas
de minúsculas. Em outras palavras, <HTML> significa o mesmo que <html>.
519
UNIDADE II - FUNDAMENTOS DE WEBDESIGN
2.4.1 Cabeçalhos
No contexto do HTML, você utiliza cabeçalhos para definir um destaque para um determinado
texto e podem ser definidos 6 níveis de cabeçalhos. Segue a codificação básica:
<Hnúmero>...</Hnúmero>
Exemplo:
Código HTML Resultado no navegador
<!DOCTYPE html>
<html>
<title>Título da página</title>
<head>
<meta charset="UTF-8">
</head>
<body>
<h1> destaque </h1>
<h2> destaque </h2>
<h3> destaque </h3>
<h4> destaque </h4>
<h5> destaque </h5>
<h6> destaque </h6>
</body>
</html>
520
UNIDADE II - FUNDAMENTOS DE WEBDESIGN
2.4.2 Parágrafos
Agora eu vou explicar como são inseridas quebras de parágrafo no HTML. Veja, a seguir:
O texto de uma página web geralmente é dividido em parágrafos, como normalmente a gente faz
fora da web. Entretanto, os navegadores não reconhecem as quebras de parágrafos que você
coloca no código HTML.
521
UNIDADE II - FUNDAMENTOS DE WEBDESIGN
Vamos refletir?
O espaço entre linhas não pode ser exagerado. Talvez você não queira colocar o
espaço extra nas linhas, que aparece sempre que você usa a marcação <p>.
O que fazer?
Neste caso, você precisa usar a marcação <br>, que quebra a linha, sem acrescentar um
espaço extra entre as linhas.
522
UNIDADE II - FUNDAMENTOS DE WEBDESIGN
Marcação Função
<b> Colocar o texto em negrito.
<strong> Visualmente faz o mesmo que a marcação b, basicamente é apenas uma recomendação
mais nova.
<i> Coloca o texto em itálico.
<em> Visualmente faz o mesmo que a marcação i, basicamente é apenas uma recomendação
mais nova.
<mark> Coloca marcado com um uma cor de destaque.
<small> Coloca o texto em destaque, diminuindo seu tamanho em relação ao tamanho padrão.
<del> Coloca um traço sobre o texto para marcar que o referido trecho foi excluído do texto
original.
<ins> Coloca um traço sob o texto para marcar que o referido trecho foi incluído no texto
original.
<sub> Coloca o texto subescrito.
523
UNIDADE II - FUNDAMENTOS DE WEBDESIGN
Exemplo:
Código HTML
<!DOCTYPE html>
<html>
<title>Título da página</title>
<head>
<meta charset="UTF-8">
</head>
<body>
Texto sem marcadores de formatação<br>
<b>Texto entre marcadores b</b><br>
<strong>Texto entre marcadores strong</strong><br>
<i>Texto entre marcadores i</i><br>
<em>Texto entre marcadores em</em><br>
<mark>Texto entre marcadores mark</mark><br>
<small>Texto entre marcadores small</small><br>
<del>Texto entre marcadores del</del><br>
<ins>Texto entre marcadores ins</ins><br><br>
Texto<sub>entre marcadores</sub>sub<br><br>
Texto<sup>entre marcadores</sup>sup
</body>
</html>
524
UNIDADE II - FUNDAMENTOS DE WEBDESIGN
Resultado no navegador
525
UNIDADE II - FUNDAMENTOS DE WEBDESIGN
Imagine algo comigo! Você está na página do Youtube, vê um vídeo legal, talvez do seu
Youtuber preferido e clica no link do vídeo. Então, a página com o vídeo que você selecionou
aparece no navegador.
Essa é uma das grande vantagens do HTML: a possibilidade de você poder navegar pelas
diferentes páginas, sem ter que seguir uma ordem pré-definida e sim o interesse do usuário.
A seguir, veja o passo a passo para criar um link para uma outra página.
526
UNIDADE II - FUNDAMENTOS DE WEBDESIGN
527
UNIDADE II - FUNDAMENTOS DE WEBDESIGN
Você sabia?
528
UNIDADE II - FUNDAMENTOS DE WEBDESIGN
529
UNIDADE II - FUNDAMENTOS DE WEBDESIGN
530
UNIDADE II - FUNDAMENTOS DE WEBDESIGN
Por falar em Youtube, esse é um dos maiores sites de vídeos do mundo, onde todos podem se
divertir, aprender e, muitas vezes, se chocar. E se você quiser inserir um vídeo na sua página? É
fácil. Vamos aprender a fazer?
Com o HTML 5 a inserção de vídeos em uma página web ficou muito mais fácil. Você precisa
utilizar basicamente duas marcações:
532
UNIDADE II - FUNDAMENTOS DE WEBDESIGN
E se você quiser apresentar alguns dados em página de forma organizada e ordenada, divididos
em colunas e linhas? Por exemplo, um site que apresenta os resultados do Brasileirão. Nesse
caso você poderia apresentar os dados na forma de uma tabela do HTML.
Agora você vai aprender a criar tabelas.
Para criar uma tabela, você precisa usar pelo menos as seguintes marcações:
533
UNIDADE II - FUNDAMENTOS DE WEBDESIGN
Código HTML
<!DOCTYPE html>
<html>
<title>Exemplo vídeo</title>
<head>
<meta charset="UTF-8">
</head>
<body>
<table border="1">
<tr>
<td rowspan="2">
<img
src="https://c1.staticflickr.com/1/28/49684002_3890beba97.jpg"
width="200"
height="300">
</td>
<td align="left">Hermione Granger</td>
<td align="right">Ronald Weasley</td>
</tr>
<tr>
<td colspan="2" align="center">Harry Potter</td>
</tr>
</table>
</body>
</html>
Resultado no navegador
534
UNIDADE II - FUNDAMENTOS DE WEBDESIGN
Questões de autoaprendizagem
Vamos pensar e praticar...
Sei que vocês têm seus programas e séries favoritas, seus sites favoritos, as coisas
com as quais você consegue passar horas vendo e se divertindo. Vamos contar isso para todo mundo?
Crie uma página reproduzindo a página a seguir. Seja criativo e pode mudar o conteúdo e os temas, mas
não a estrutura. Tenho certeza de que você consegue, pois é uma pessoa muito inteligente. Atenção: as
imagens são apenas ilustrativas.
535
UNIDADE II - FUNDAMENTOS DE WEBDESIGN
Solução...
Para resolver essa questão, você deve primeiro pensar na estrutura da tabela e na forma que você quer apresentar.
Depois, pesquisar algumas imagens que são interessantes para você. Por fim, deveria escrever um código
semelhante a este:
<!DOCTYPE html>
<html>
<title>
Exemplo
</title>
<head>
<meta charset=”UTF-8”>
</head>
<body>
<table border>
<tr>
<th colspan=”2”>Coisas que eu gosto</th>
</tr>
<tr>
<td>Meu desenho favorito</td>
<td>
<img width=”200”
height=”200”
src=”https://i.ytimg.com/vi/5_f5Nmt1pRE/maxresdefault.jpg”>
</td>
</tr>
<tr>
<td>Meu game preferido</td>
<td>
(continua…)
536
UNIDADE II - FUNDAMENTOS DE WEBDESIGN
<img width=”200”
height=”200”
src=”http://cdn.edgecast.steamstatic.com/steam/apps/730/header.jpg?t=1513742714”
</td>
</tr>
<tr>
<td>Meu youtuber preferido</td>
<td>
<img width=”200”
height=”200”
src=”http://s2.glbimg.com/8BrYj3OetdqHBzbUammebQ2o4VA=/620x465/s.glbimg.
com/jo/g1/f/original/2016/06/27/whindersson1.png”
</td>
</tr>
<tr>
</tr>
</table>
</body>
</html>
537
UNIDADE II - FUNDAMENTOS DE WEBDESIGN
Vamos rever?
Nesta unidade você conheceu um breve histórico sobre o HTML e suas versões.
Também estudou sobre alguns ambientes de desenvolvimento web, tais como o
Adobe Dreamweaver e o Brackets. Agora você já sabe que os elementos básicos
de uma página HTML são: cabeçalhos, parágrafos e quebra de linhas.
Agora você está preparado (a) para a próxima lição, em que aprenderá a formatar a sua
página, usando uma folha de estilos.
Continue estudando...
Sites indicados
538
UNIDADE II - FUNDAMENTOS DE WEBDESIGN
Glossário
● HTML
HyperText Markup Language ou Linguagem de Marcação de HiperTexto é o
construtor de blocos mais básico da web. Ele serve para descrever e definir o
conteúdo de uma página web.
Fonte: https://developer.mozilla.org/pt-BR/docs/Web/HTML
● HTTP
O chamado Hypertext Transfer Protocol (ou na sigla HTTP, que em tradução livre do
inglês significa Protocolo de Transferência de Hipertexto) é um protocolo de
comunicação (na camada de aplicação segundo o Modelo OSI) utilizado para sistemas
de informação de hipermídia distribuídos e colaborativos. Seu uso para a obtenção
de recursos interligados levou ao estabelecimento da World Wide Web.
539
540
INTRODUÇÃO AO CSS
Olá novamente!!!
Na Unidade II, eu expliquei para você sobre como criar códigos HTML e até como fazer
um pouquinho sobre alguma formatação, entretanto, essa não é a forma de se
mais prática e produtiva de uma página web. O melhor é usar o que formatar
chamamos de folha de estilos.
(Cascading a
Por isso, nesta unidade, você verá como utilizar as folhas de mesma a
estilo em cascata Style Sheets, ou simplesmente CSS. Assim, realização
você poderá facilmente aplicar formatação a todas as lugar, que
páginas de um site qualquer, o que também facilita ajustes
e eventuais manutenções, pois faz a correção em um único
de estilo,
lugar que se repete em todos os sites que usam o mesmo
diversas
arquivo CSS.
uso de
Ao final desta unidade, você poderá:
textos,
● Identificar os principais conceitos sobre folhas ;
● Identificar os principais editores;
● Usar classes e id’s,
● Aplicar as diferentes maneiras de incluir as formatações do CSS;
● Identificar as diversas formas de cores;
● Alterar os padrões de fundo;
● Formatar textos e fontes usando as propriedades do CSS; e
Passamos agora a analisar em maiores detalhes a definição de CSS (Cascading Style Sheets).
As folhas de estilo especificam como os elementos de uma página HTML serão exibidos na tela,
separando o conteúdo do formato. Ao utilizarmos o CSS temos os seguintes benefícios:
• Facilitar a manutenção, pois podemos fazer a alteração em um único arquivo CSS e utilizar
a mesma formatação em todas as páginas de um portal;
Saiba mais!
Fonte: http://getbootstrap.com.br/
542
UNIDADE III - FUNDAMENTOS DE WEBDESIGN
Por onde você deve começar? Afinal, qual aplicativo você precisa usar para criar um código CSS?
A rigor, basta ter um editor de texto simples (bloco de notas) para criar um código CSS (neste
caso você deve salvar como um arquivo .css) e um navegador para visualizar o resultado do
referido código. Existem dezenas de ambientes de desenvolvimento. Vou apresentar para você
os principais.
¹ GNU General Public License (Licença Pública Geral GNU), GNU GPL ou simplesmente GPL.
543 Fonte: http://www.gnu.org/
UNIDADE III - FUNDAMENTOS DE WEBDESIGN
Exemplo:
Peço que você teste todos os exemplos que mostraremos. Para isso, faça o seguinte:
544
UNIDADE III - FUNDAMENTOS DE WEBDESIGN
Você, uma pessoa inteligente, já entendeu o que precisa usar para trabalhar com o CSS. Agora,
vamos conhecer a estrutura essencial desse tipo de código.
Imagem 1
Fonte: elaborado pelo autor
Em outras palavras, toda página HTML que referenciar esse código CSS apresentará em vermelho
todos os textos que estiverem entre as marcações <body> e </body>.
Se você quiser fazer várias declarações para o mesmo seletor, ou seja, se quiser definir várias
formatações para a mesma marcação do HTML, precisa separar cada declaração por um ponto e
vírgula.
545
UNIDADE III - FUNDAMENTOS DE WEBDESIGN
546
UNIDADE III - FUNDAMENTOS DE WEBDESIGN
Você conheceu a sintaxe básica do CSS. Agora, vamos aprender como usar algumas estruturas
que permitem a aplicação de determinada formatação utilizando classes e id’s.
Você sabia?
“Em HTML e CSS, há a possibilidade de aplicar estilos através de ‘class’ e ‘id’
e, em JavaScript é possível identificar algum elemento de uma página por
sua classe, id ou tag. Mas qual a diferença entre ‘class’ e ‘id’?
As classes são uma forma de identificar um grupo de elementos. Através delas, pode-se
atribuir formatação a VÁRIOS elementos de uma vez.
As ids são uma forma de identificar um elemento e devem ser ÚNICAS para cada elemento.
É como se fossem impressões digitais de nossos dedos ou RGs. Através delas, pode-se
atribuir formatação a um elemento em especial”.
Fonte: http://tableless.github.io/iniciantes/manual/css/class-id.html
547
UNIDADE III - FUNDAMENTOS DE WEBDESIGN
3.4.1 Usando o id
Se você definir no CSS que os parágrafos serão na cor vermelha, todos serão vermelhos. E
se você quiser que um parágrafo específico seja na cor azul?
Nesse caso, você poderia usar um id, que deve ser único, como o CPF de um brasileiro,
que é único. Você define a formatação de um determinado id no CSS e utiliza o referido
id com um atributo de uma marcação do HTML. Para criar um id, basta fazer o seguinte:
• No CSS: colocar o símbolo # seguido de um nome que será usado no HTML para
identificar o id.
548
UNIDADE III - FUNDAMENTOS DE WEBDESIGN
Exemplo:
549
UNIDADE III - FUNDAMENTOS DE WEBDESIGN
Se usar o mesmo id para mais de um marcador, seu código não vai passar pelo validador.
Segundo a W3C², a maioria dos documentos da Web são escritos usando linguagens de
marcação, como o HTML, que são definidas por especificações técnicas, que geralmente
incluem uma gramática formal (e vocabulário) legível por máquina. O ato de verificar um
documento contra essas restrições é chamado de validação, e isso é o que o Validador de
Marcação faz. A validação de documentos da Web é um passo importante que pode ajudar
dramaticamente a melhorar e a garantir a sua qualidade, e pode economizar muito tempo e
dinheiro.
Se você quiser agrupar características semelhantes, deve usar classes. Assim, você poderia
aplicar a mesma formatação diferenciada em diferentes marcações. Pode parecer um pouco
complicado entender, mas na prática é bem mais fácil.
Para usar uma classe, você define a formatação de uma determinada classe no CSS e a utiliza
com um atributo de uma marcação do HTML. Para criá-la, basta fazer o seguinte:
• No CSS: colocar o símbolo . seguido de um nome que será usado no HTML para identificar
a classe.
• No HTML: colocar o atributo class seguido do sinal = e o nome identificador entre aspas
duplas.
² World Wide Web Consortium (W3C) é uma comunidade internacional onde membros de organizações, funcionários em
tempo integral e o público em geral trabalham em conjunto para desenvolver padrões da Web .
Fonte: https://www.w3.org/Consortium/
550
UNIDADE III - FUNDAMENTOS DE WEBDESIGN
Exemplo:
551
UNIDADE III - FUNDAMENTOS DE WEBDESIGN
Imagine a seguinte situação: você foi contratado(a) para desenvolver um grande portal.
Parabéns!!! Então, você terá que criar e formatar 45 páginas HTML. Imagine ter que formatar
cada página individualmente. E o problema se agrava quando estamos na fase de homologação,
quando temos que testar e corrigir todas as páginas. Um trabalho maior do que a batalha entre
Goku e Freeza, que durou 20 episódios (risos).
Nesse caso, seria melhor você entender as diferentes formas de inserir as formatações do CSS:
linking, embedding e inline.
Você já entendeu como usar classes e id’s. Parabéns!!! Você é uma pessoa inteligente. Agora
vamos aprender que podemos inserir as formatações do CSS de diferentes formas.
Você pode formatar um documento HTML de acordo com as informações de uma folha de estilo
(CSS), que podem ser inseridas de três formas diferentes, a saber:
• Linking (externa ou lincada): carrega um arquivo CSS, que pode ser usado em várias
páginas, utilizando a marcação link;
• Inline (na linha): define a formatação do CSS apenas em uma marcação específica,
utilizando a propriedade style.
552
UNIDADE III - FUNDAMENTOS DE WEBDESIGN
Você sabia?
Entretanto, em uma única página você quer fazer uma alteração específica, ou seja,
não quer mudar tudo, apenas um detalhe. Nesse caso, qual regra será seguida? A regra
do arquivo externo ou a regra da página específica?
553
UNIDADE III - FUNDAMENTOS DE WEBDESIGN
Resultado na tela
554
UNIDADE III - FUNDAMENTOS DE WEBDESIGN
Você já sabe como incluir o CSS. Vamos agora identificar como trabalhar com cores no CSS.
Existem várias formas de especificar uma mesma cor. Podemos formatar as cores de um
determinado elemento HTML, usando a propriedade color e valor da cor. Atualmente os
navegadores suportam 140 cores diferentes. No CSS há diferentes formas de identificar uma
cor:
• pelo nome da cor: existem 140 diferentes nomes pré-definidos de cores. Você pode
encontrar todos os nomes padrão de cores no seguinte endereço:
https://www.w3.org/TR/css-color-3/;
• pelos valores em RGB: todas as cores podem ser representadas pela combinação das
cores vermelho (Red em inglês), verde (green em inglês) e azul (Blue em inglês). Para
cada uma dessas cores, pode-se atribuir valores de 0 a 255;
555
UNIDADE III - FUNDAMENTOS DE WEBDESIGN
• valores em HSL: podemos definir uma cor em termos da tonalidade (Hue), saturação
(Saturation) e leveza (Lightness):
556
UNIDADE III - FUNDAMENTOS DE WEBDESIGN
Resultado na tela
557
UNIDADE III - FUNDAMENTOS DE WEBDESIGN
Saiba mais!
Eventualmente você vai querer converter uma determinada cor para
padrões diferentes. O cálculo manual dessa conversão pode ser mais
complicado. Entretanto, existem diversos sites que fazem a conversão
online, um deles é o webcalc.
Sintaxe básica:
558
UNIDADE III - FUNDAMENTOS DE WEBDESIGN
3.7.2 Usando uma imagem de fundo
E, se ao invés de uma cor, você quisesse colocar uma imagem de fundo? Nesse caso, você
precisaria usar estas propriedades:
• background-image
Com esta propriedade, você pode especificar a imagem que será usada como fundo do elemento
do HTML. Por definição, a imagem será repetida ao longo de todo o elemento.
Exemplo:
559
UNIDADE III - FUNDAMENTOS DE WEBDESIGN
Observe que você precisa indicar onde a imagem se encontra. Se estiver em uma pasta
diferente de onde você salvou o código HTML, deverá indicar o caminho até a imagem.
Você também pode indicar o endereço do site onde a imagem pode ser localizada. Por
exemplo:
body{
background-image:
url(“https://upload.wikimedia.org/wikipedia/lt/thumb/1/1b/
BigBangTheoryTitleCard.png/250px-BigBangTheoryTitleCard.png”);
• background-repeat
Neste caso, você deve utilizar a propriedade background-repeat, junto com a propriedade
background-image. Os principais valores permitidos para essa nova propriedade são:
560
UNIDADE III - FUNDAMENTOS DE WEBDESIGN
561
UNIDADE III - FUNDAMENTOS DE WEBDESIGN
• background-attachment
Usando esta propriedade, a imagem de fundo não rola com a página, fica fixa.
562
UNIDADE III - FUNDAMENTOS DE WEBDESIGN
563
UNIDADE III - FUNDAMENTOS DE WEBDESIGN
• background-position
Por padrão, uma imagem em segundo plano é colocada no canto superior esquerdo da tela. E se
você não quiser a imagem nesse local?
564
UNIDADE III - FUNDAMENTOS DE WEBDESIGN
Resultados na tela
Saiba mais!
“Em se tratando de planos de fundo, as CSS nos fornecem a propriedade
background, recurso que traz diferentes opções para customização desse
espaço nos elementos declarados em nossas páginas.
Com background podemos definir a cor de fundo, imagem, o posicionamento dela, se deve se
repetir, entre outras opções, agregando um diferencial ainda maior para o visual das nossas
aplicações”. Saiba mais neste vídeo da DevMedia.
Fonte: https://www.devmedia.com.br/css-background/3831
565
UNIDADE III - FUNDAMENTOS DE WEBDESIGN
No item anterior, você compreendeu como formatar padrões de fundo. Agora vamos aprender a
formatar textos e fontes usando as propriedades do CSS.
• text-transform: define o uso de letras em caixa alta, que pode conter os seguintes valores:
566
UNIDADE III - FUNDAMENTOS DE WEBDESIGN
• text-shadow: insere uma sombra ao texto. Você deve especificar: a posição da sombra
no sentido horizontal (em pixels);
o a cor da sombra.
• font-style: define se o texto será mostrado em itálico ou não, usando o valor italic;
567
UNIDADE III - FUNDAMENTOS DE WEBDESIGN
Resultados na tela
Saiba mais!
569
UNIDADE III - FUNDAMENTOS DE WEBDESIGN
Vamos refletir?
Já imaginou fazer uma animação bem legal, fazendo a transição de estilo CSS
para outro? Por exemplo, fazendo a transição suave de cores de fundo de um
elemento HTML qualquer. É muito simples. Vamos aprender?
Para a fazer uma animação, o mínimo que você precisa fazer é o seguinte:
570
UNIDADE III - FUNDAMENTOS DE WEBDESIGN
3.9.1 Transformações
Junto com as animações você também pode fazer transformações 2D, usando a propriedade
transform e os seguintes valores:
• translate(): que move um elemento HTML da sua posição atual (de acordo com os
parâmetros dados para o eixo X e o eixo Y). Exemplo: translate(10px,10px);
• rotate(): que gira um elemento HTML no sentido horário ou anti-horário de acordo com um
determinado grau. Exemplo: rotate(10deg);
571
UNIDADE III - FUNDAMENTOS DE WEBDESIGN
572
UNIDADE III - FUNDAMENTOS DE WEBDESIGN
Questões de autoaprendizagem
Agora, vamos formatar aquela página usando o CSS. Você deve alterar, no mínimo:
• cores de fundo;
• tamanho e negrito das fontes;
• expandir a largura da tabela para 100%;
• inserir animações diferentes para as 3 imagens.
Novamente, seja criativo(a), faça algo legal e mostre para seus/ suas amigos(as). Tenho
certeza de que você consegue. Atenção: as imagens são apenas ilustrativas.
573
UNIDADE III - FUNDAMENTOS DE WEBDESIGN
Solução...
Para resolver essa questão, você deveria pensar no padrão de cores que iria usar, alterar as
fontes e imaginar as animações de translação, mudança de escala e rotação. Por fim, deveria
escrever um código semelhante a este:
Arquivo HTML
<html>
<head>
<title>Exemplo</title>
<meta charset=”UTF-8”>
<link rel=”stylesheet”
href=”exemplo.css
”
type=”text/css”>
</head>
<body>
<table border>
<tr>
<th colspan=”2”>Coisas que eu gosto</th>
</tr>
<tr>
<td>Meu desenho favorito</td>
<td>
<img
id=”deslizaDesenho”
width=”200”
height=”200”
src=”https://i.ytimg.com/vi/5_f5Nmt1pRE/maxresdefault.jpg”>
</td>
</tr>
UNIDADE III - FUNDAMENTOS DE WEBDESIGN
<tr>
<td>Meu game preferido</td>
<td>
<img
id=”encolheJogo”
width=”200”
height=”200”
src=”http://cdn.edgecast.steamstatic.com/steam/apps/730/header.jpg?t=151374271
4”
</td>
</tr>
<tr>
<td>Meu youtuber preferido</td>
<td>
<img
id=”giraYoutuber”
width=”200”
height=”200”
src=”http://s2.glbimg.com/8BrYj3OetdqHBzbUammebQ2o4VA=/620x465/s.glbim
g.com/jo/g1/f/original/2016/06/27/whindersson1.png”
</td>
</tr>
<tr>
</tr>
</table>
</body>
</html>
575
UNIDADE III - FUNDAMENTOS DE WEBDESIGN
Arquivo CSS
table{
width:100%;
}
th{
background-color:rgb(12,97,18)
; color:white;
text-align:center;
text-transform:uppercase
; font-size:xx-large;
}
td{
background-color:rgb(187,247,191)
; text-align:center;
text-shadow: 1px 1px
green; font-weight: 600;
font-size:30px;
}
@keyframes animaYoutuber {
8% {transform: rotate(30deg);}
17% {transform: rotate(60deg);}
25% {transform: rotate(90deg);}
33% {transform: rotate(60deg);}
42% {transform: rotate(30deg);}
50% {transform: rotate(0deg);}
576
UNIDADE III - FUNDAMENTOS DE WEBDESIGN
#giraYoutuber{
animation-name:
animaYoutuber;
animation-duration: 3s;
animation-iteration-count:infinite;
}
#encolheJogo{
animation-name:
animaJogo;
animation-duration: 3s;
animation-iteration-count:infinite;
}
#deslizaDesenho{
animation-name:
animaDesenho;
animation-duration: 3s;
animation-iteration-count:infinite;
}
578
UNIDADE III - FUNDAMENTOS DE WEBDESIGN
Vamos rever?
Bom, chegamos ao final de mais uma unidade! Espero que você tenha
gostado. Você, uma pessoa muito inteligente e divertida, conseguiu compreender
os principais conceitos sobre folhas de estilo, conheceu os principais editores,
aprendeu a usar classes e id’s, descobriu diversas maneiras de incluir as
formatações do CSS, aprendeu as diversas formas de uso de cores, conheceu as
técnicas para alterar os padrões de fundo, entendeu como aplicar formatações a
textos e fontes, e aprendeu a fazer animações simples usando o CSS.
579
UNIDADE III - FUNDAMENTOS DE WEBDESIGN
Sites indicados
•CSS Tutorial. Disponível em:
https://developer.mozilla.org/pt-BR/docs/Web/CSS
Acesso: 15 jan. 2018.
580
UNIDADE III - FUNDAMENTOS DE WEBDESIGN
Glossário
● Background
É um substantivo masculino que significa fundo ou segundo plano.
Fonte: https://www.dicio.com.br/background/
● CSS
CSS (Cascading Style Sheets ou em português: folhas de estilos em cascata) é uma
linguagem de estilo usada para descrever a apresentação de um documento escrito
em HTML ou em XML (incluindo várias linguagens em XML como SVG ou XHTML). O
CSS descreve como elementos são mostrados na tela, no papel, no discurso ou em
outras mídias.
Fonte: https://developer.mozilla.org/pt-BR/docs/Web/CSS
● Padding
É uma propriedades CSS usada para gerar espaço em torno do conteúdo de um
elemento, dentro de qualquer limite definido.
Fonte: https://www.w3schools.com/css/css_padding.asp
● Template
É um modelo a ser seguido, com uma estrutura predefinida que facilita o
desenvolvimento e a criação do conteúdo a partir de algo construído a priori. Ao
instalar o Joomla! em sua versão mais básica, alguns modelos já são trazidos e
podem ser usados e modificados livremente, mas dependendo do que se deseja
construir ou modificar, existem outros modelos que melhor se adaptam à nossa
necessidade.
Fonte: https://www.portaleducacao.com.br/conteudo/artigos/educacao/o-que-e-template/39828
581
UNIDADE
III
582
JavaScript
583
UNIDADE IV - FUNDAMENTOS DE WEBDESIGN
Você sabia?
• Java é uma linguagem de programação Orientada a Objeto, ao passo que Java Script
é uma linguagem de scripts Orientada a Objeto.
• O código Java precisa ser compilado, ao passo que os códigos JavaScript estão
totalmente em texto.
Fonte: https://www.java.com/pt_BR/download/faq/java_javascript.xml
584
UNIDADE IV - FUNDAMENTOS DE WEBDESIGN
4.1 Editores
Sabemos que existem diversos IDE’s, então por onde você deve começar? Afinal, qual aplicativo
você precisa usar para criar um código em JavaScript? Veremos os principais ambientes logo a
seguir.
A rigor, basta ter um editor de texto simples, como o bloco de notas, para criar um código CSS
(neste caso, você deve salvar como um arquivo .css) e um navegador para visualizar o resultado
do referido código. Existem dezenas de ambiente de desenvolvimento. Vou apresentar para
você os principais.
Semelhante ao que dissemos na unidade sobre HTML, para criar um código em JavaScipt basta
ter um editor de texto simples (bloco de notas), salvar como um arquivo .js e um navegador
para visualizar o resultado do referido código. Entretanto, existem dezenas de ambientes de
desenvolvimento, os mesmos do HTML, vamos relembrar na tabela a seguir.
585
UNIDADE IV - FUNDAMENTOS DE WEBDESIGN
¹ GNU General Public License (Licença Pública Geral GNU), GNU GPL ou simplesmente GPL.
Fonte: http://www.gnu.org/
586
UNIDADE IV - FUNDAMENTOS DE WEBDESIGN
Exemplo:
Peço que você teste todos os exemplos que mostraremos. Para isso, faça o seguinte:
Você sabia?
587
UNIDADE IV - FUNDAMENTOS DE WEBDESIGN
O código em JavaScript pode ser colocado dentro do código HTML, entre as seções <body> ou
<head>, utilizando a marcação <script>, usando o parâmetro type, com o valor text/javascript.
588
UNIDADE IV - FUNDAMENTOS DE WEBDESIGN
Vamos refletir?
Escreva seu código JavaScript, salve em um arquivo com a extensão .js com todas as instruções
do JavaScript. No código HTML, chame o referido arquivo .js da seguinte forma:
• Na mesma marcação script, use também a propriedade src, e como valor da mesma, use
o nome do arquivo junto com a extensão.
589
UNIDADE IV - FUNDAMENTOS DE WEBDESIGN
Exemplo:
590
UNIDADE IV - FUNDAMENTOS DE WEBDESIGN
Você sabia?
No JavaScript, assim como em outras linguagens, temos uma coisa chamada função, que é
basicamente um bloco de código que realiza uma tarefa específica. Esse bloco facilita a
manutenção do código, mas só é executado quando é chamado.
Em outro tópico, falaremos como criar as suas próprias funções. Neste momento utilizaremos
funções pré-existentes, mais especificamente funções que mostram informações na tela do
navegador.
591
UNIDADE IV - FUNDAMENTOS DE WEBDESIGN
592
UNIDADE IV - FUNDAMENTOS DE WEBDESIGN
593
UNIDADE IV - FUNDAMENTOS DE WEBDESIGN
Você lembra que a gente estudou o uso do id unidade III, quando falamos sobre o CSS? Foi dito
que id é uma forma de identificar um elemento do HTML. Dissemos também que o id deve ser
único para cada elemento.
E se você quisesse mostrar alguma informação em um elemento específico do HTML usando esse
id? Nesse caso, você poderia utilizar o método getElementById() do objeto document, junto com
Vamos apresentar um exemplo a seguir e se você quiser ver mais detalhes acesse estes sites:
594
UNIDADE IV - FUNDAMENTOS DE WEBDESIGN
document.getElementById(id).innerHTML = valor
Onde:
595
UNIDADE IV - FUNDAMENTOS DE WEBDESIGN
Você sabia?
Fonte: https://developer.mozilla.org/pt-BR/docs/conflicting/Learn/JavaScript/Objects
Agora a gente vai fazer uma rápida passagem por alguns conceitos fundamentais, que são
utilizados em todas as linguagens de programação. Aproveite para fazer uma revisão ou aprender
o básico.
4.4.1 Variáveis
● O nome da variável deve começar sempre com uma letra. Por exemplo, usuario1;
596
UNIDADE IV - FUNDAMENTOS DE WEBDESIGN
Observações:
Resultado no navegador
597
UNIDADE IV - FUNDAMENTOS DE WEBDESIGN
Você sabia?
Fonte: https://www.rnp.br/sobre
A RNP disponibilizou uma série de videoaulas, entre as quais destaco a aula sobre “Tipos de Dados,
Variáveis e Comandos de Entrada e Saída”. Caso você tenha ainda alguma dúvida sobre estes assuntos
básicos, recomendo que você assista a essa videoaula.
São aqueles que permitem realizar algumas operações matemáticas básicas. São eles:
Valor armazenado em x
Símbolo Operação Aritmética Exemplo
(após as instruções ao lado)
+ Soma var x = 3 + 2; 5
- Subtração var x = 3 - 2; 1
* Multiplicação var x = 3 * 2; 6
Digamos que você entre com uma senha no Facebook. Se a senha estiver correta, abre a página
do perfil. Caso contrário, mostra uma mensagem de erro. Como resolver isso em programação?
Poderia usar um if.
A estrutura do if é utilizada para simular tomadas de decisão. Se um teste lógico for verdadeiro,
executamos um bloco de instruções, caso contrário, executamos outro bloco de instruções, mas
nunca os dois ao mesmo tempo.
var x = 3;
== igual var y = 4; falso
if(x == y)
var x = 3;
!= diferente var y = 4; verdadeiro
if(x != y)
var x = 3;
> maior var y = 4; falso
if(x > y)
Tabela 2: operadores relacionais
Fonte: elaborado pelo autor
599
UNIDADE IV - FUNDAMENTOS DE WEBDESIGN
Estrutura
if (teste)
básica: {
instruções
else
{
instruções
}
</body>
</html>
Resultado no navegador
600
UNIDADE IV - FUNDAMENTOS DE WEBDESIGN
Digamos que você queira repetir seu nome 10 vezes na página do navegador. O que
faria? Que código utilizaria? Nem pense em usar document.write() 10 vezes (risos).
Laços de repetição são estruturas utilizadas para repetir uma ou mais instruções. As
duas principais estruturas de repetição são while e for.
Usando While
ValorInicialDoContador
while(TesteDeParada){
instruções
AlteraçãoDoValorDoContador
}
Usando For
for(ValorInicialDoContador; TesteDeParada; AlteraçãoDoValorDoContador){
instruções
}
601
UNIDADE IV - FUNDAMENTOS DE WEBDESIGN
Exemplos:
602
UNIDADE IV - FUNDAMENTOS DE WEBDESIGN
Você sabia?
Para saber mais sobre laços de repetição assista aos vídeos da Khan Academy.
Como dissemos anteriormente, uma função é basicamente um bloco de código que realiza uma
tarefa específica. Para que esse bloco seja executado, a função precisa ser chamada.
Syntaxe básica:
Exemplo:
Código HTML com JavaScript e com CSS
<html>
<head>
<title>Funções</title>
<style type="text/css">
.botao {
font-weight: 900;
background-color:red;
color: white;
padding: 10px 30px;
text-align: center;
font-size: 20px;
}
</style>
</head>
<body>
<button class="botao" id="valor1" width="50" height="50"></button> +
<button class="botao" id="valor2" width="50" height="50"></button> =
<button class="botao" id="resultado" width="50" height="50"></button>
<script charset="ISO-8859-1"
type="text/javascript">
function soma(){
document.getElementById("valor1").innerHTML = "4";
document.getElementById("valor2").innerHTML = "3";
document.getElementById("resultado").innerHTML = "7";
}
soma();
</script>
</body>
</html>
Resultado no navegador
604
UNIDADE IV - FUNDAMENTOS DE WEBDESIGN
Evento Descrição
Onchange Indica o que fazer quando um elemento do HTML mudar. Por
exemplo, quando preencher o campo ou selecionar um item
de um formulário.
Onclick Indica o que fazer quando clicar sobre um elemento do
HTML.
Onsubmit Indica o que fazer quando clicar em botão submit de um
formulário.
onmouseover Indica o que fazer quando o mouse passar sobre um
determinado elemento do HTML.
onload Indica o que fazer quando o navegador termina de carregar
uma página.
onunload Indica o que fazer quando o navegador abandonar uma
página HTML.
Tabela 3: eventos em JavaScript
Fonte: elaborado pelo autor
605
UNIDADE IV - FUNDAMENTOS DE WEBDESIGN
606
UNIDADE IV - FUNDAMENTOS DE WEBDESIGN
Você sabia?
Para ajudar na sua pesquisa, indico um site onde consta uma lista mais completa de
eventos em JavaScript.
607
UNIDADE IV - FUNDAMENTOS DE WEBDESIGN
Saiba mais!
Viu como eventos são uma ferramenta poderosa para o desenvolvedor
web? Você conseguiu entender o conceito de evento? Caso reste
alguma dúvida, proponho que você assista a mais uma videoaula da
RNP.
Vamos rever?
608
UNIDADE IV - FUNDAMENTOS DE WEBDESIGN
Sites indicados
609
610
UNIDADE IV - FUNDAMENTOS DE WEBDESIGN
Glossário
● DOM
O Modelo de Objeto de Documento (DOM) é uma interface de programação para
documentos HTML, XML e SVG. Ele fornece uma representação estruturada do
documento como uma árvore. O DOM define métodos que permitem acesso à árvore,
para que os mesmos métodos possam alterar a estrutura, estilo e conteúdo do
documento. O DOM fornece uma representação do documento como um grupo
estruturado de nós e objetos, possuindo várias propriedades e métodos. Os nós
também podem ter manipuladores de eventos que lhe são inerentes e, uma vez que
um evento é acionado, os manipuladores de eventos são executados. Essencialmente,
ele conecta páginas web a scripts ou linguagens de programação.
Fonte: https://developer.mozilla.org/pt-BR/docs/Web/API/Document_Object_Model
● JavaScript
JavaScript® (às vezes abreviado para JS) é uma linguagem leve, interpretada e
baseada em objetos com funções de primeira classe, mais conhecida como a
linguagem de script para páginas Web, mas usada também em vários outros ambientes
sem browser como node.js, Apache CouchDB e Adobe Acrobat. É uma linguagem de
script multiparadigma, baseada em protótipo que é dinâmico e suporta estilos de
programação orientado a objetos, imperativo e funcional. Saiba mais sobre
JavaScript.
Fonte: https://developer.mozilla.org/pt-BR/docs/Web/JavaScript
611
UNIDADE IV - FUNDAMENTOS DE WEBDESIGN
Referências
BROWN, Tim. Design Thinking. Uma Metodologia Poderosa para Decretar o Fim das
Velhas Ideias. Alta Books, 2017.
FREEMAN, Eric. FREEMAN, Elisabeth. Use a Cabeça! HTML com CSS e XHTML. Alta Books,
2008.
MELO, Adriana. ABELHEIRA, Ricardo. Design Thinking and Thinking Design - Metodologia,
Ferramentas e Uma Reflexão Sobre o Tema. Novatec, 2015.
612
UNIDADE IV - FUNDAMENTOS DE WEBDESIGN
Currículo do autor
613
Secretaria de
Educação Profissional
e Tecnológica