Prévia do material em texto
Grupo SER Educacional | Lógica de Programação 1
LÓGICA DE PROGRAMAÇÃO
Lógica de Programação
IZABELLY MORAIS E MAX AZEVEDO
HISTÓRIA DOS
COMPUTADORES
AULA 01
Diretor Executivo
DAVID LIRA STEPHEN BARROS
Direção Editorial
ANDRÉA CÉSAR PEDROSA
Projeto Gráfico
MANUELA CÉSAR DE ARRUDA
Autor
IZABELLY MORAIS E MAX AZEVEDO
Desenvolvedor
CAIO BENTO GOMES DOS SANTOS
O Autor
Izabelly Morais de Morais
Olá. Meu nome é Izabelly Morais. Sou licenciada em Ciência da
Computação pela Universidade Federal da Paraíba (UFPB), e mestre em
Ciência da Computação com ênfase em Engenharia de Software e
Linguagens de Programação pela Universidade Federal de Pernambuco
(UFPE). Leciono como professora formadora no Instituto Federal de
Pernambuco (IFPE) e na Faculdade Pitágoras (João Pessoa/PB), onde
tenho a oportunidade de transmitir minha experiência na área de
tecnologia e educação.
Max André de Azevêdo Silva
Olá. Meu nome é Max Azevêdo Silva. Sou formado em Licenciatura em
Ciência da Computação, pela Universidade Federal da Paraíba, e
mestrando em Ciência da Computação com ênfase em Engenharia de
Software pela Universidade Federal da Paraíba. Possuo experiência na
área de desenvolvimento de sistemas web, mobile e jogos eletrônicos.
Atualmente atuo como Analista de Sistemas.
A possibilidade de expor nossos conhecimentos adquiridos ao longo dos
anos é fantástica! Por isso fomos convidados pela Editora Telesapiens a
integrar seu elenco de autores independentes. Estamos muito felizes em
poder ajudar você nesta fase de muito estudo e trabalho. Conte conosco!
IZABELLY MORAIS E MAX AZEVEDO
“
Iconográficos
Olá. Meu nome é Manuela César de Arruda. Sou o responsável pelo
projeto gráfico de seu material. Esses ícones irão aparecer em sua trilha
de aprendizagem toda vez que:
INTRODUÇÃO
para o início do
desenvolvimento de
uma nova
competência;
DEFINIÇÃO
houver necessidade de
se apresentar um novo
conceito;
NOTA
quando forem
necessários
observações ou
complementações
para o seu
conhecimento;
IMPORTANTE
as observações
escritas tiveram
que ser priorizadas
para você;
EXPLICANDO
MELHOR
algo precisa ser
melhor explicado ou
detalhado;
VOCÊ SABIA?
curiosidades e
indagações lúdicas
sobre o tema em
estudo, se forem
necessárias;
SAIBA MAIS
textos, referências
bibliográficas e links
para aprofundamento
do seu conhecimento;
REFLITA
se houver a necessidade
de chamar a atenção
sobre algo a ser refletido
ou discutido sobre;
ACESSE
se for preciso acessar
um ou mais sites
para fazer download,
assistir vídeos, ler
textos, ouvir podcast;
RESUMINDO
quando for preciso se
fazer um resumo
acumulativo das
últimas abordagens;
ATIVIDADES
quando alguma
atividade de
autoaprendizagem for
aplicada;
TESTANDO
quando o
desenvolvimento de
uma competência for
concluído e questões
forem explicadas;
Sumário
1 HISTÓRIA DOS COMPUTADORES ............................................................................. 8
1.1 O Ábaco e os Ossos de Napier ............................................................................... 8
1.2 Auxílio mecânico para os cálculos ......................................................................... 9
1.3 Primeira geração dos computadores (1946 - 1954) .............................................. 13
1.4 Evolução das gerações de computadores ............................................................. 13
1.4.1 Segunda Geração (1952 – 1964) .............................................................. 14
1.4.2 Terceira Geração (1964-1977) ................................................................ 14
1.4.3 Quarta Geração (1977-1991) ................................................................... 14
1.4.4 Quinta Geração (1991...) ........................................................................ 14
1.5 Evolução dos recursos computacionais ................................................................ 15
1.5.1 Unidade de armazenamento de dados ..................................................... 15
1.5.2 Unidade de velocidade de processamento ............................................... 16
Considerações Finais ................................................................................................ 18
Atividades de Autoaprendizagem .............................................................................. 18
Questionário Avaliativo ............................................................................................ 18
Bibliografia .............................................................................................................. 19
Trilha de Aprendizagem
Olá. Meu nome é Andréa César. Sou responsável pela direção editorial
deste livro didático e de todos os demais recursos relacionados com a sua
trilha de aprendizagem. Você está iniciando seus estudos sobre LÓGICA
DE PROGRAMAÇÃO, e o nosso objetivo é auxiliar você no desenvolvimento
das competências necessárias ao seu exercício profissional. Para isto,
distribuímos os conteúdos didáticos deste livro em quatro semanas de
estudo, onde, em cada uma delas, haverá uma competência a se r
construída. Cada uma dessas competências será desenvolvida por meio
de quatro atividades de estudo, que podemos chamar de “aulas”. Em
cada aula, você terá uma introdução ao tema abordado, os objetivos a
serem alcançados, uma atividade de autoaprendizagem proposta e uma
lista de exercícios a serem respondidos. Quer saber quais serão as
competências que você irá desenvolver ao longo dessas quatro semanas
de estudo? Então vamos a elas:
Compreender os conceitos fundamentais da ciência da computação, 1.
sobretudo no que concerne a softwares e programação de
computadores.
Desenvolver algoritmos estruturados envolvendo operações com 2.
variáveis e comandos condicionais simples.
Utilizar estruturas condicionais encadeadas e iterativas, além de 3.
efetuar operações envolvendo vetores.
Trabalhar com matrizes e modulação de algoritmos, como 4.
procedimentos e funções.
Ao longo desta semana iremos desenvolver a competência de número: 1.
Vamos arregaçar as mangas? Ao trabalho!
Lógica de Programação| Izabelly Morais e Max Azevedo | 7
1ª SEMANA DE ESTUDOS
INTRODUÇÃO:
onhecer a história e entender os conceitos relacionados à
ciência da computação é vital para o desenvolvimento das
competências de programação de computadores. Ao longo
desta primeira etapa de estudos iremos desbrava todo esse
conhecimento, como preparação para mergulharmos no mundo da
programação de computadores. Preparado para uma viagem rumo ao
conhecimento? Então, aperte o cinto e boa viagem.
OBJETIVOS:
Ao término desta semana de estudos, você será capaz de:
Conhecer a história dos computadores e a evolução dos recursos
computacionais.
Entender o funcionamento e os vários paradigmas das linguagens de
programação.
Compreender a infraestrutura dos sistemas computacionais,
discernindo sobre hardware, software e peopleware.
Definir e entender o conceito e as funcionalidades da lógica de
programação e algoritmos computacionais.
Mãos à obra? Conte com a gente!
C
Lógica de Programação| Izabelly Morais e Max Azevedo | 8
1 História dos Computadores
INTRODUÇÃO:
A informática nasce da ideia de auxiliar o homem nos trabalhos rotineiros
e repetitivos, geralmente ligados à área de cálculo e gerenciamento.
Desse modo, conhecer a história doscomputadores é importante, pois é
através do estudo do passado que podemos compreender e valorizar o
presente. No decorrer desta aula teremos a oportunidade de analisar
exemplos de como ideias simples contribuíram para evolução da
humanidade.
1.1 O Ábaco e os Ossos de Napier
O ábaco foi um dos primeiros instrumentos
desenvolvidos para auxiliar os humanos na realização de
cálculos. Muitos atribuem sua criação à China, mas
existem evidências dele na Babilônia do ano 300 A.C.
OBJETIVO:
Ao término desta aula você deverá ter conhecido a história dos
computadores e a evolução dos recursos computacionais.
Figura 1 - Foto de um Ábaco de
brinquedo. Fonte:
https://cdn.pixabay.com/photo/20
14/10/21/21/21/abacus-
497215_960_720.png (Acesso em
27/07/2017)
Para saber mais sobre o ábaco, acesse o link:
http://www.educacaopublica.rj.gov.br/oficinas/matematic
a/abaco/03.html (Acesso em 14/10/2017)
SAIBA MAIS
http://www.educacaopublica.rj.gov.br/oficinas/matematica/abaco/03.html
http://www.educacaopublica.rj.gov.br/oficinas/matematica/abaco/03.html
Lógica de Programação| Izabelly Morais e Max Azevedo | 9
Figura 3 - As coroas dentadas de
Pascal ou Pascaline. Fonte:
https://upload.wikimedia.org/wi
kipedia/commons/thumb/f/ff/P
ascaline-CnAM_823-2-
IMG_1510-white.jpg/1024px-
Pascaline-CnAM_823-2-
IMG_1510-white.jpg. (Acesso em
10/09/2017)
O próprio nome “computador” está associado ao termo
“contar”. E era isto que o Ábaco fazia: ajudava as
pessoas a mecanizar o processo da contagem numérica,
realizando as operações de soma e de subtração de
maneira bastante visual e intuitiva, como podemos
observar na foto da figura 1.
Em 1617, John Napier construiu um dispositivo simples
e barato para auxiliar os cálculos matemáticos . Esse
dispositivo ficou conhecido como “Ossos de Napier” ou
“Bastões de Napier”.
1.2 Auxílio mecânico para os cálculos
Em 1642, o francês Blaise Pascal, aos 19 anos de idade, criou a
primeira calculadora mecânica do mundo. Esse dispositivo ficou
conhecido como “As rodas dentadas de Pascal” ou “Pascaline”.
Figura 2 - Ossos de Napier. Fonte:
https://upload.wikimedia.org/wikipe
dia/commons/8/8c/Bones_of_Napier
_%28board_and_rods%29.png.
(Acesso em 10/09/2017)
Você gostaria de compreender melhor o funcionamento do
mecanismo criado por John Napier? Um vídeo fala mais do
que mil palavras. Então acesse o link:
https://www.youtube.com/watch?v=HLynpr0iv0A&t=9s
(Acesso em 14/10/2017)
EXPLICANDO MELHOR
https://www.youtube.com/watch?v=HLynpr0iv0A&t=9s
Lógica de Programação| Izabelly Morais e Max Azevedo | 10
Em 1801, Joseph Marie Jacquard construiu
“Máquina de Tecer com Cartões Perfurados”.
Joseph era um costureiro que trabalhava com
desenhos em tecidos. Porém, esse processo era
demorado e isso levou Joseph a construir uma
máquina para fazer os desenhos nos tecidos.
Esse mecanismo ficou conhecido como “Tear
programável”, pois, através das instruções
contidas nos cartões perfurados, essa máquina
cortava e desenhava em tecidos. A foto da
figura 4 ilustra essa máquina.
Em 1820, Charles Babbage (matemático
inglês), preocupado com os erros contidos nas
tabelas matemáticas de sua época, construiu um modelo para calcular
tabelas de funções (logaritmos, funções trigonométricas, etc.) , sem a
intervenção de um operador humano. Nascia então a “Máquina
Diferencial de Babbage”. Babbage projetou essa máquina para ser
Figura 4 - Tear Programável de Jacquard. Fonte:
http://producao.virtual.ufpb.br/books/camyle/introduc
ao-a-computacao-
livro/livro/livro.chunked/images/historia -do-
computador/JacquardLoom.jpg.(Acesso em
10/09/2017)
O mecanismo de funcionamento da Pascaline é o mesmo
utilizado até hoje nos odômetros de carros, onde as
engrenagens são organizadas de tal forma a simular o "vai
um" para a próxima casa decimal nas operações de
adição.
VOCÊ SABIA?
Existe uma animação demonstrando o funcionamento da
máquina Pascaline. Você pode acessá-la através do
seguinte link: http://therese.eveilleau.pagesperso-
orange.fr/pages/truc_mat/textes/pascaline.htm (Acesso
em 14/10/2017)
SAIBA MAIS
http://therese.eveilleau.pagesperso-orange.fr/pages/truc_mat/textes/pascaline.htm
http://therese.eveilleau.pagesperso-orange.fr/pages/truc_mat/textes/pascaline.htm
Lógica de Programação| Izabelly Morais e Max Azevedo | 11
composta por diversos discos giratórios
operados por manivelas (foto na figura 5).
Em 1823, o governo britânico concordou em
financiar a construção da máquina de Charles
Babbage. Porém as ferramentas da época não
eram suficientemente sofisticadas para
construir a máquina. Babbage, então, gastou
tempo construindo ferramentas e, por
diversas, vezes a construção da máquina
parou por falta de fundos.
Em 1833, Babbage abandonou a ideia da máquina diferencial e iniciou
um trabalho em seu novo projeto, conhecido como “Máquina Analítica de
Babbage”. Essa máquina podia ser programada através de cartões
perfurados e calculava várias funções diferentes. Porém, a tecnologia
pouco avançada da época não possibilitou que a máquina fosse concluída
e, somente um século depois, suas ideias foram postas em prática.
Em 1880, os dados do senso demográfico dos Estados Unidos, que ocorria
a cada 10 anos, levaram quase 8 anos para serem processados. Dessa
forma surgiu uma preocupação quanto ao tempo necessário p ara
Figura 6 - Máquina Diferencial de Babbage.
Fonte:
https://upload.wikimedia.org/wikipedia/comm
ons/5/53/BabbageDifferenceEngine.jpg.
(Acesso em 10/09/2017)
Para saber mais sobre Babbage e suas criações, acesse o
link: https://www.youtube.com/watch?v=s8IKAJxl75U
(Acesso em 14/10/2017) e assista a um vídeo bastante
elucidativo a esse respeito.
SAIBA MAIS
Para muitos, Charles Babbage é considerado o verdadeiro
“Pai da Computação”.
IMPORTANTE
https://www.youtube.com/watch?v=s8IKAJxl75U
Lógica de Programação| Izabelly Morais e Max Azevedo | 12
processar os dados de 1890. Então, Herman Hollerith (estatístico) foi
designado pela Agência Estatística dos EUA para desenvolver uma técnica
de aceleração do processamento dos dados daquele censo.
Hollerith se utilizou da ideia de Jackard e desenvolveu a Perfuradora de
Cartões, modo pelo qual os dados eram perfurados em cartões que
podiam ser classificados por meio de pinos passando pelos furos.
A máquina de Hollerith era tão veloz que uma simples contagem ficava
pronta em seis semanas, e uma análise estatística completa, em dois
anos e meio. A população aumentara em cerca de 13 milhões de pessoas
durante a década anterior, até um total de 62.622.250 habitantes.
Mesmo assim, a tabulação do censo de 1890 demorou aproximadamente
um terço do tempo gasto por seu predecessor. A máquina de Hollerith
ficou mundialmente conhecida, tendo sido utilizada por vários países em
diversos seguimentos de mercado. Então, Hollerith montou uma empresa
chamada de International Business Machines Corporation , mais
popularmente conhecida como IBM, uma marca forte e atuante até os
dias de hoje.
Figura 7 - Perfuradora de Cartões de Hollerith. Fonte:
http://www.di.ufpb.br/raimundo/Revolucao_dos_Computadores/TAB.jpg. (Acesso em 10/09/2017)
Lógica de Programação| Izabelly Morais e Max Azevedo | 13
1.3 Primeira geração dos computadores (1946 - 1954)
A primeira geração dos computadores é marcada pela utilização de
válvulas. A válvula era um tubo de vidro, similar a uma lâmpada, que
aquecia bastante e costumava queimar com facilidade.
O armazenamento dos dadosdesses computadores era feito,
inicialmente, através de cartões perfurados. Posteriormente esse
armazenamento passou a ser feito por meio de fitas magnéticas. Esses
computadores eram máquinas extremamente grandes, chegando a
ocupar áreas da ordem de 180 m². Outra característica desses
computadores era que, para programá-los, costumava-se levar muito
tempo.
1.4 Evolução das gerações de computadores
Desde o primeiro computador eletrônico inventado, o processo evolutivo
daquelas máquinas foi célere e intenso. Após a primeira geração, houve
muitas outras até que chegássemos às atuais máquinas atualmente em
uso.
Farias e Medeiros (2013), trazem os principais acontecimentos, conforme
as respectivas décadas, como mostra o quadro da tabela 1 a seguir.
Figura 8 - Válvulas. Fonte: http://producao.virtual.ufpb.br/books/camyle/introducao -
a-computacao-livro/livro/livro.chunked/images/historia -do-
computador/valvulas.png. (Acesso em 10/09/2017)
Lógica de Programação| Izabelly Morais e Max Azevedo | 14
1.4.1 Segunda Geração (1952 – 1964)
Essa geração foi marcada pela
substituição da válvula pelo transistor,
que 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, eram
mais rápidos e confiáveis
1.4.2 Terceira Geração (1964-1977)
Marcada pela utilização dos circuitos
integrados, feitos de silício, essa
geração se caracterizou pelo advento
dos microchips. Seu processo de
fabricação possibilitava a construção de
vários circuitos simultaneamente,
facilitando a produção em massa.
1.4.3 Quarta Geração (1977-1991)
Esta geração é caracterizada pelo
surgimento dos microprocessadores -
unidade central de processamento.
Sistemas operacionais como MS-DOS,
UNIX e CP/M eram os utilizados à
época.
Linguagens de programação orientadas
a objeto como C++ e Small talk foram
desenvolvidas. Discos rígidos eram
utilizados como memória secundária. As
impressoras matriciais e os teclados
com layouts atuais foram criados nessa
época.
1.4.4 Quinta Geração (1991... )
Os computadores da quinta geração
usam processadores com milhões
de circuitos integrados. Essa
geração está sendo marcada pela
inteligência artificial e por sua
conectividade.
Tabela 1: Gerações de computadores. Fonte: Adaptado de Farias et al (2013)
Figura 9 - Placa de circuito com
transistores. Fonte:
https://pixabay.com/pt/hedging-bobina-
placa-de-circuito-647485/
Figura 10 - Placa de circuitos integrados.
Fonte: https://pixabay.com/pt/placa-
m%C3%A3e-eletr%C3%B4nica-computador-
581597/
Figura 11 - Microcomputador típico da terceira
geração. Fonte:
https://upload.wikimedia.org/wikipedia/common
s/thumb/6/69/IBM_PC_5150.jpg/280px -
IBM_PC_5150.jpg
Figura 12 - Os notebooks representam bem
essa geração. Fonte:
https://pixabay.com/pt/laptop -notebook-
m%C3%B3veis-computador-154091/
Lógica de Programação| Izabelly Morais e Max Azevedo | 15
1.5 Evolução dos recursos computacionais
É evidente que ao armazenarmos algo, essa coisa pode ser quantificada.
Como por exemplo, podemos armazenar água em um reservatório e , para
sabermos a quantidade armazenada, podemos nos basear no seu volume.
Esse volume é medido em litros (l) ou metros cúbicos (m3). No mundo da
informática os dados são transmitidos e armazenados, portando esses
dados também podem ser quantificados e mensurados em unidades de
medida. Os computadores trabalham com diversas unidades de medidas,
então vamos esclarecer algumas das mais importantes, começando pela
que consegue mensurar a capacidade de armazenamento de dados.
1.5.1 Unidade de armazenamento de dados
O computador armazena dados em sua memória, reservando um pequeno
espaço denominado “byte”. Cada byte consegue representar um pequeno
fragmento de dado, que podemos chamar de caractere. Esse caractere
pode ser um algarismo de 0 a 9, uma letra do alfabeto de “A” a “Z”, ou
um símbolo especial, como “&”, “@”, “ -“, etc. Um byte, ou um conjunto
deles, pode ainda representar um ponto luminoso na tela do computador
ou uma nota musical que compõe uma canção armazenada em sua
memória.
Um byte pode ainda ser subdividido em fragmentos ainda
menores. Um byte é, na realidade, uma combinação de 8
bits. Bits são sinais binários, representados pelos números
0 e 1. Cada bit, portanto, pode equivaler a zero ou a um.
Internamente, esses sinais binários são simulados pela
presença ou ausência de corrente elétrica dentro do chip.
VOCÊ SABIA?
Lógica de Programação| Izabelly Morais e Max Azevedo | 16
Bem, agora que você entendeu o que são bits e bytes, atente para a
tabela 1, que mostra as diferentes unidades de medida de
armazenamento de um computador, em bytes.
Tabela 2: Unidades de medida de armazenamento de dados. Fonte: Editorial Telesapiens
1.5.2 Unidade de velocidade de processamento
Outra medida importante para os computadores diz respeito à velocidade
de processamento, chamada de Mega-hertz. Um Mega-hertz, ou MHz,
equivale a 1 milhão de ciclos por segundo, ou seja, 106 (“dez” elevado à
sexta potência), diferentemente de Megabyte, que, como vimos, utiliza
outro tipo de potenciação: a de base dois (210 = 1.024).
Tabela 3: Unidades de medida de velocidade de processamento. Fonte: Editorial Telesapiens
Medida Sigla Valor (capacidade)
Bit b bit 1 b
Byte B 1 (8 bits) 1 B
Quilo-byte KB 1.024 1.024 B
Mega-byte MB 1.048.576 1.024 KB
Giga-byte GB 1.073.741.824 1.024 MB
Tera-byte TB 1.099.511.627.776 1.024 GB
Penta-byte PB 1.125.899.906.842.624 1.024 TB
Hexa-byte HB 1.152.921.504.606.846.976 1.024 PB
Yota-byte YB 1.208.925.819.614.630.000.000.000 1.024 HB
Medida Sigla Velocidade
Hertz Hz 1 ciclo por segundo 1 Hz
Quilo-hertz KHz 1.000 ciclos/segundo 1.000 Hz
Mega-
hertz
MHz 1.000.000 ciclos/segundo 1.000 KHz
Giga-hertz GHz 1.000.000.000
ciclos/segundo
1.000 MHz
Tera-hertz THz 1.000.000.000.000
ciclos/segundo
1.000 GHz
Lógica de Programação| Izabelly Morais e Max Azevedo | 17
Um termo comumente utilizado no mercado de
informática é o “Clock”. Ao adquirir um computador, você
pode se referir à sua velocidade de processamento usando
este termo, que significa, na realidade, a frequência com
que o processador pergunta para a placa-mãe
(motherboard) se há alguma instrução a ser processada.
NOTA
Lógica de Programação| Izabelly Morais e Max Azevedo | 18
Considerações Finais
SAIBA MAIS:
Quer se aprofundar no tema desta aula? Recomendamos o acesso à
seguinte fonte de consulta e aprofundamento: Vídeo: “História do
computador em minutos”, acessível pelo link
https://www.youtube.com/watch?v=F3qWg1JBPZg (Acesso em
19/09/2017).
Atividades de Autoaprendizagem
ATIVIDADES:
Pronto para consolidar seus conhecimentos? Leia atentamente o
enunciado de sua atividade de autoaprendizagem proposta para esta
aula. Se você está fazendo o seu curso presencialmente, é só abrir o
seu caderno de atividades. Se você estiver cursando na moda lidade de
EAD (Educação a Distância), acesse a sua trilha de aprendizagem no seu
ambiente virtual e realize a atividade de modo online. Você pode
desenvolver esta atividade sozinho ou em parceria com seus colegas de
turma. Dificuldades? Poste suas dúvidas no fórum de discussõesem seu
ambiente virtual de aprendizagem. Concluiu a sua atividade? Submeta o
resultado em uma postagem diretamente em seu ambiente virtual de
aprendizagem e boa sorte!
Questionário Avaliativo
TESTANDO:
Chegou a hora de você provar que aprendeu tudo o que foi abordado ao
longo desta aula. Para isto, leia e resolva atentamente as questões do
seu caderno de atividades. Se você estiver fazendo este curso a
distância, acesse o QUIZ (Banco de Questões) em seu ambiente virtual
de aprendizagem.
https://www.youtube.com/watch?v=F3qWg1JBPZg
Lógica de Programação| Izabelly Morais e Max Azevedo | 19
Bibliografia
FARIAS, G., & MEDEIROS, E. S. (2013). Introdução à Computação.
Lógica de Programação| Izabelly Morais e Max Azevedo | 20
Grupo SER Educacional | Lógica de Programação 1
LÓGICA DE PROGRAMAÇÃO
Lógica de Programação
IZABELLY MORAIS E MAX AZEVEDO
LINGUAGENS DE
PROGRAMAÇÃO
AULA 02
Diretor Executivo
DAVID LIRA STEPHEN BARROS
Direção Editorial
ANDRÉA CÉSAR PEDROSA
Projeto Gráfico
MANUELA CÉSAR DE ARRUDA
Autor
IZABELLY MORAIS E MAX AZEVEDO
Desenvolvedor
CAIO BENTO GOMES DOS SANTOS
O Autor
Izabelly Morais de Morais
Olá. Meu nome é Izabelly Morais. Sou licenciada em Ciência da
Computação pela Universidade Federal da Paraíba (UFPB), e mestre em
Ciência da Computação com ênfase em Engenharia de Software e
Linguagens de Programação pela Universidade Federal de Pernambuco
(UFPE). Leciono como professora formadora no Instituto Federal de
Pernambuco (IFPE) e na Faculdade Pitágoras (João Pessoa/PB), onde
tenho a oportunidade de transmitir minha experiência na área de
tecnologia e educação.
Max André de Azevêdo Silva
Olá. Meu nome é Max Azevêdo Si lva. Sou formado em Licenciatura em
Ciência da Computação, pela Universidade Federal da Paraíba, e
mestrando em Ciência da Computação com ênfase em Engenharia de
Software pela Universidade Federal da Paraíba. Possuo experiência na
área de desenvolvimento de sistemas web, mobile e jogos eletrônicos.
Atualmente atuo como Analista de Sistemas.
A possibilidade de expor nossos conhecimentos adquiridos ao longo dos
anos é fantástica! Por isso fomos convidados pela Editora Telesapiens a
integrar seu elenco de autores independentes. Estamos muito felizes em
poder ajudar você nesta fase de muito estudo e trabalho. Conte conosco!
IZABELLY MORAIS E MAX AZEVEDO
“
Iconográficos
Olá. Meu nome é Manuela César de Arruda. Sou o responsável pelo
projeto gráfico de seu material. Esses ícones irão aparecer em sua trilha
de aprendizagem toda vez que:
INTRODUÇÃO
para o início do
desenvolvimento de
uma nova
competência;
DEFINIÇÃO
houver necessidade de
se apresentar um novo
conceito;
NOTA
quando forem
necessários
observações ou
complementações
para o seu
conhecimento;
IMPORTANTE
as observações
escritas tiveram
que ser priorizadas
para você;
EXPLICANDO
MELHOR
algo precisa ser
melhor explicado ou
detalhado;
VOCÊ SABIA?
curiosidades e
indagações lúdicas
sobre o tema em
estudo, se forem
necessárias;
SAIBA MAIS
textos, referências
bibliográficas e links
para aprofundamento
do seu conhecimento;
REFLITA
se houver a necessidade
de chamar a atenção
sobre algo a ser refletido
ou discutido sobre;
ACESSE
se for preciso acessar
um ou mais sites
para fazer download,
assistir vídeos, ler
textos, ouvir podcast;
RESUMINDO
quando for preciso se
fazer um resumo
acumulativo das
últimas abordagens;
ATIVIDADES
quando alguma
atividade de
autoaprendizagem for
aplicada;
TESTANDO
quando o
desenvolvimento de
uma competência for
concluído e questões
forem explicadas;
Sumário
1 LINGUAGENS DE PROGRAMAÇÃO ........................................................................... 6
1.1 Conceitos fundamentais ........................................................................................ 6
1.2 Classificação das linguagens de programação ...................................................... 10
1.2.1 Linguagem de máquina ........................................................................... 10
1.2.2 Linguagens de baixo nível ....................................................................... 11
1.2.3 Linguagens de alto nível ......................................................................... 12
Considerações Finais ................................................................................................ 15
Atividades de Autoaprendizagem .............................................................................. 15
Questionário Avaliativo ............................................................................................ 15
Bibliografia .............................................................................................................. 16
Lógica de Programação| Izabelly Morais e Max Azevedo | 6
1 Linguagens de Programação
INTRODUÇÃO:
É importante entender que o computador se divide em duas partes bem
distintas: o hardware e o software. O hardware é tudo o que é físico no
computador, como por exemplo: teclado, monitor, mouse, etc. Já o
software diz respeito a tudo que não se pode “tocar”, como programas
(aplicativos) e dados. É com foco no software que iremos discorrer sobre
os temas ao longo desta aula, para que você possa entender exatamente
o que são e para que servem programas, dados e linguagens de
programação.
1.1 Conceitos fundamentais
Você sabe o que é um programa? Não estamos nos referindo ao seu
programa de final de semana – esse você certamente conhece bem.
Estamos nos referindo ao que anima as máquinas e as faz realizar todas
as tarefas que estamos acostumados a ver, como processar dados,
imprimir informações, fazer a leitura de uma imagem por meio de um
scanner, enfim, toda e qualquer operação que os mandemos fazer (e até
aquelas que são feitas por iniciativa própria do computador).
Mas, espera aí! Quem está por traz de tudo o que o computador faz?
Somos nós? Ou tem mais alguém? A resposta para esta pergunta é dúbia:
somos nós sim, mas por meio dos programas que escrevemos para eles,
que são como cartas escritas para orientá-los a executar procedimentos
(comandos ou instruções).
OBJETIVO:
Ao término desta aula você será capaz de entender o funcionamento e os
vários paradigmas das linguagens de programação .
Lógica de Programação| Izabelly Morais e Max Azevedo | 7
Podemos ampliar ainda mais este conceito, pensando em termos do
software como um todo. Você sabe qual a diferença entre programa e
software? Podemos entender um programa como um software, mas nem
todo software é um programa. Como vimos anteriormente, software é
tudo aquilo que não se toca em um sistema computaciona l. Logo, os
dados e as informações também devem ser considerados como
“software”, pois nelas também não podemos tocar. Agora podemos não
só ampliar o conceito de software, como lançar mais algumas definições,
como as que se seguem:
Programas são conjuntos de instruções, ordenadas
logicamente com vistas a realização de um ou mais
procedimentos, que podem ser executados por meio de
um comando ou de outro programa.
DEFINIÇÃO
Dados são conjuntos fragmentos de informações que,
processados por um programa, transformam-se em
informações.Informações são conjuntos de dados capazes de mudar o
estado de conhecimento de alguém sobre algo, podendo
ser exteriorizada em várias mídias distintas, como
relatórios de papel, textos exibidos em monitores de vídeo,
gráficos, sons, objetos em 3D, etc.
Instruções são comandos escritos em um programa,
executados apenas quando este programa é submetido
por um comando ou por outro programa.
Comandos são palavras imperativas (verbos) que ordenam
um processamento específico por parte do computador,
como um procedimento ou a execução de um programa.
DEFINIÇÃO
Lógica de Programação| Izabelly Morais e Max Azevedo | 8
Os comandos, assim como as instruções de um programa, são escritos de
acordo com uma sintaxe (regra gramatical) que deve ser compreendida
pelo sistema operacional, pelo compilador ou pelo interpretador de
programas.
Cabe aos sistemas operacionais compreender a sintaxe dos comandos.
Por exemplo, o Windows reconhece o comando “DIR”, que ordena a
exibição do conteúdo de uma pasta em um disco rígido, ou em outro
dispositivo de memória auxiliar qualquer. A figura a seguir mostra
claramente como um comando é digitado, submetido ao computador e,
como consequência, as informações são devolvidas após o
processamento dos dados.
Figura 1 - Imagem do Prompt de Comando do Windows executando o comando "DIR". Fonte: Editorial
Telesapiens.
Lógica de Programação| Izabelly Morais e Max Azevedo | 9
Dizemos então que o comando “DIR” é escrito em uma linguagem que o
sistema operacional Windows entende. Mas, e quanto ao programa que é
executado pelo comando “DIR”? Ele existe. Afinal, não é tão simples
assim ler todas as informações de uma pasta em um disco e exibi -la na
tela do computador com todos aqueles detalhes e formatos. Para isto,
uma sequência de outros comandos é executada internamente. A esta
sequência damos o nome de programa.
Então, assim como o comando “DIR”, todos os outros comandos chamam,
na realidade, programas, que executam uma série de procedimentos
conforme as instruções neles previamente programadas. Para isto, essas
instruções também têm que obedecer uma sintaxe. Pronto! Chegamos à
definição de Linguagem de Programação.
Com isto, queremos dizer que, assim como a língua portuguesa possui
uma gramática e um dicionário, toda e qualquer linguagem de
programação também deve possuir esses dois atributos:
Gramática: é o conjunto de regras de sintaxe que determinam como as
instruções devem ser empregadas em um programa.
Para testar o comando DIR do sistema operacional
Windows, clique na ferramenta de pesquisa da barra de
tarefas e digite a palavra “PROMPT”. Isto fará aparecer a
opção “Prompt de Comando” no menu. Basta clicar em
cima dela.
NOTA
Linguagem de programação é um conjunto de regras
sintáticas cuja finalidade é orientar a escrita das
instruções de um programa.
DEFINIÇÃO
Lógica de Programação| Izabelly Morais e Max Azevedo | 10
Dicionário: é o conjunto de palavras que definem as instruções aceitas
pela linguagem de programação.
1.2 Classificação das linguagens de programação
Existe uma enormidade de linguagens de programação no mercado de
informática. Se formos considerar aquelas que não mais existem,
podemos afirmar que a quantidade de linguagens de programação se
aproxima do número de idiomas oficiais do planeta. Diante de tantas
linguagens assim, vamos classificá-las em três grupos, sendo o primeiro
possuidor de apenas uma única linguagem, como mostra o diagrama a
seguir.
Figura 2 - Classificação das linguagens de programação. Fonte: Editorial Telesapiens.
1.2.1 Linguagem de máquina
A linguagem de máquina é a linguagem realmente entendida pelo
computador. Ela é composta por comandos binários (0 “zeros” e 1 “uns”),
o que as torna praticamente inacessíveis aos programadores
convencionais. Cada família de processador estabelece uma linguagem
de máquina própria, composta basicamente por endereços de memória e
comandos de movimentação de bytes entre esses endereços.
COMPUTADOR
de
Máquina
Baixo
nível
Alto nível
Lógica de Programação| Izabelly Morais e Max Azevedo | 11
1.2.2 Linguagens de baixo nível
Para se ter acesso à linguagem de máquina, deve-se utilizar uma
linguagem de programação inteligível ao ser humano. Existe, como já
dissemos, uma enormidade delas. A mais próxima e diretamente
relacionada à linguagem de máquina é o Assembly (ou linguagem
montadora). Essa linguagem, apesar de ser inteligível ao homem, é de
alta complexidade e de difícil compreensão. Dizemos então que o
Assembly é uma linguagem de baixo nível .
Antes de prosseguirmos, precisamos entender uma coisa em definitivo: o
computador só entende uma única linguagem: a de máquina. Todas as
outras precisarão ser convertidas para esta linguagem. A este processo
de conversão damos o nome de “compilação”. Para isto, um programa,
para ser executado por um computador, necessitará ser compilado por
um outro programa, intitulado compilador.
Alguns autores defendem a existência de dois grupos de
linguagem de programação: os de baixo nível e os de alto
nível. Esses defendem que a linguagem de máquina é
considerada uma linguagem de baixo nível. Outros autores
isolam a linguagem de máquina dessa classificação,
diferenciando-a das demais. Assim, para efeito desta obra,
poderemos nos referir eventualmente às linguagens de
máquina como sendo de baixo nível.
NOTA
Compilador é um programa, escrito em linguagem de
máquina, capaz de traduzir um outro programa, escrito em
uma linguagem de baixo ou alto nível, para a linguagem
de máquina, gerando o que chamamos de programa-
objeto ou programa-executável.
DEFINIÇÃO
Lógica de Programação| Izabelly Morais e Max Azevedo | 12
1.2.3 Linguagens de alto nível
Com a popularidade dos computadores criou-se um "problema": alta
demanda por software e, consequentemente, por programadores.
Aparentemente isso não é exatamente um problema, e sim uma
oportunidade, uma tendência, um novo mercado. Faz sentido, até certo
ponto. O problema era encontrar mão de obra qualificada para criar
códigos que as máquinas pudessem executar. À época, só havia
linguagens de baixo nível no mercado.
Devido à necessidade de facilitar a maneira como humanos poderiam
escrever comandos para as máquinas, surgiram as linguagens de alto
nível. Essas linguagens possuem a característica de serem mais
amigáveis para o entendimento humano.
Podemos citar como exemplos de linguagem de programação de alto
nível: ASP, ActionScript, C++, C#, Pascal, Object Pascal, Euphoria, Java,
JavaScript, Lua, MATLAB, PHP, Python, Ruby, Basic , Visual Basic, entre
muitas outras.
O processo de compilação de um programa escrito em linguagem de alto
nível se dá, normalmente, por meio de duas etapas. Conforme ilustrado a
seguir, percebemos que os programas de alto nível são compilados
primeiramente para uma linguagem de baixo nível, para somente ent ão
serem convertidos para a linguagem de máquina.
Figura 3 - Processo de compilação em duas etapas. Fonte: Editorial Telesapiens.
Pré-compilação
Linguagem de alto nível
...................................
...................................
...................................
...................................
Compilação
Linguagem de baixo nível
...................................
...................................
...................................
...................................
Geração do executável
Linguagemde máquina
...................................
...................................
...................................
...................................
Lógica de Programação| Izabelly Morais e Max Azevedo | 13
O processo de compilação, em alguns casos, torna-se moroso,
comprometendo a produtividade da equipe de desenvolvimento de
software das empresas. Por isso, com o advento das linguagens de alto
nível, criou-se o conceito de interpretação de programas como alternativa
à compilação. Em termos práticos, a interpretação dispensa a geração de
programas-objeto, ou seja, os interpretadores leem os programas fontes e
interagem diretamente com o computador, instrução a instrução.
Programa fonte é o programa escrito em linguagem de
baixo ou alto nível, que é submetido ao processo de
compilação.
Programa objeto é o programa resultante do processo de
compilação do programa fonte. Também é conhecido
como programa executável, e é gerado na linguagem de
máquina pelo compilador.
DEFINIÇÃO
Interpretador é o programa que permite a execução direta
de um programa fonte, sem a necessidade de criação de
um programa objeto.
DEFINIÇÃO
Em uma linguagem de programação interpretada, o
processo ocorre como se a compilação se desse
instantaneamente a cada instrução executada, em tempo
real.
EXPLICANDO MELHOR
Lógica de Programação| Izabelly Morais e Max Azevedo | 14
Programas são escritos em linguagens de programação,
que reúnem conjuntos de instruções ordenadas
logicamente com vistas à realização de um ou mais
procedimentos. Esses programas são acionados por meio
de comandos, e têm por objetivo ler dados e submetê -los a
um processamento, de modo a obter uma informação
relevante ou uma ação automatizada. As linguagens de
programação podem ser de máquina (aquela que dialoga
diretamente com os componentes de hardware em
sistema binário), de baixo nível (aquelas que são lidas por
compiladores para a geração de programas em linguagem
de máquina) ou de alto nível (as que possuem uma sintaxe
mais amigável, mas que necessitam de interpretadores ou
compiladores capazes de gerar um programa em
linguagem de baixo nível,
RESUMINDO
Lógica de Programação| Izabelly Morais e Max Azevedo | 15
Considerações Finais
SAIBA MAIS:
Quer se aprofundar no tema desta aula? Recomendamos o acesso à
seguinte fonte de consulta e aprofundamento: Vídeo: “Qual
linguagem de programação você deve aprender primeiro?”, acessível
pelo link:
https://www.youtube.com/watch?v=Yqq7IsxDGZc (Acesso em
19/09/2017).
Atividades de Autoaprendizagem
ATIVIDADES:
Pronto para consolidar seus conhecimentos? Leia atentamente o
enunciado de sua atividade de autoaprendizagem proposta para esta
aula. Se você está fazendo o seu curso presencialmente, é só abrir o
seu caderno de atividades. Se você estiver cursando na moda lidade de
EAD (Educação a Distância), acesse a sua trilha de aprendizagem no seu
ambiente virtual e realize a atividade de modo online. Você pode
desenvolver esta atividade sozinho ou em parceria com seus colegas de
turma. Dificuldades? Poste suas dúvidas no fórum de discussões em seu
ambiente virtual de aprendizagem. Concluiu a sua atividade? Submeta o
resultado em uma postagem diretamente em seu ambiente virtual de
aprendizagem e boa sorte!
Questionário Avaliativo
TESTANDO:
Chegou a hora de você provar que aprendeu tudo o que foi abordado ao
longo desta aula. Para isto, leia e resolva atentamente as questões do
seu caderno de atividades. Se você estiver fazendo este curso a
distância, acesse o QUIZ (Banco de Questões) em seu ambiente virtual
de aprendizagem.
https://www.youtube.com/watch?v=Yqq7IsxDGZc
Lógica de Programação| Izabelly Morais e Max Azevedo | 16
Bibliografia
BROOKSHEAR, G. J. (2013). Ciência da Computação - Uma Visão Abrangente (11.
ed.). Porto Alegre: Bookman.
MORAES, P. S. (2000). Curso Básico de Lógica de Programação. São Paulo:
Unicamp. Acesso em 15 de Out de 2017, disponível em
http://www.inf.ufsc.br/~vania/teaching/ine5231/Logica.pdf
SOUSA, B. J., DIAS JÚNIOR, J. J., & FORMIGA, A. A. (2014). Introdução a
Programação. João Pessoa: UFPB. Acesso em 15 de Out de 2017,
disponível em
http://biblioteca.virtual.ufpb.br/files/introduaao_a_programaaao_146315
0047.pdf
Lógica de Programação| Izabelly Morais e Max Azevedo | 17
Grupo SER Educacional | Lógica de Programação 1
LÓGICA DE PROGRAMAÇÃO
Lógica de Programação
IZABELLY MORAIS E MAX AZEVEDO
INFRAESTUTURA DOS
SISTEMAS
COMPUTACIONAIS
AULA 03
Diretor Executivo
DAVID LIRA STEPHEN BARROS
Direção Editorial
ANDRÉA CÉSAR PEDROSA
Projeto Gráfico
MANUELA CÉSAR DE ARRUDA
Autor
IZABELLY MORAIS E MAX AZEVEDO
Desenvolvedor
CAIO BENTO GOMES DOS SANTOS
O Autor
Izabelly Morais de Morais
Olá. Meu nome é Izabelly Morais. Sou licenciada em Ciência da
Computação pela Universidade Federal da Paraíba (UFPB), e mestre em
Ciência da Computação com ênfase em Engenharia de Software e
Linguagens de Programação pela Universidade Federal de Pernambuco
(UFPE). Leciono como professora formadora no Instituto Federal de
Pernambuco (IFPE) e na Faculdade Pitágoras (João Pessoa/PB), onde
tenho a oportunidade de transmitir minha experiência na área de
tecnologia e educação.
Max André de Azevêdo Silva
Olá. Meu nome é Max Azevêdo Si lva. Sou formado em Licenciatura em
Ciência da Computação, pela Universidade Federal da Paraíba, e
mestrando em Ciência da Computação com ênfase em Engenharia de
Software pela Universidade Federal da Paraíba. Possuo experiência na
área de desenvolvimento de sistemas web, mobile e jogos eletrônicos.
Atualmente atuo como Analista de Sistemas.
A possibilidade de expor nossos conhecimentos adquiridos ao longo dos
anos é fantástica! Por isso fomos convidados pela Editora Telesapiens a
integrar seu elenco de autores independentes. Estamos muito felizes em
poder ajudar você nesta fase de muito estudo e trabalho. Conte conosco!
IZABELLY MORAIS E MAX AZEVEDO
“
Iconográficos
Olá. Meu nome é Manuela César de Arruda. Sou o responsável pelo
projeto gráfico de seu material. Esses ícones irão aparecer em sua trilha
de aprendizagem toda vez que:
INTRODUÇÃO
para o início do
desenvolvimento de
uma nova
competência;
DEFINIÇÃO
houver necessidade de
se apresentar um novo
conceito;
NOTA
quando forem
necessários
observações ou
complementações
para o seu
conhecimento;
IMPORTANTE
as observações
escritas tiveram
que ser priorizadas
para você;
EXPLICANDO
MELHOR
algo precisa ser
melhor explicado ou
detalhado;
VOCÊ SABIA?
curiosidades e
indagações lúdicas
sobre o tema em
estudo, se forem
necessárias;
SAIBA MAIS
textos, referências
bibliográficas e links
para aprofundamento
do seu conhecimento;
REFLITA
se houver a necessidade
de chamar a atenção
sobre algo a ser refletido
ou discutido sobre;
ACESSE
se for preciso acessar
um ou mais sites
para fazer download,
assistir vídeos, ler
textos, ouvir podcast;
RESUMINDO
quando for preciso se
fazer um resumo
acumulativo das
últimas abordagens;
ATIVIDADESquando alguma
atividade de
autoaprendizagem for
aplicada;
TESTANDO
quando o
desenvolvimento de
uma competência for
concluído e questões
forem explicadas;
Sumário
1 INFRAESTRUTURA DOS SISTEMAS COMPUTACIONAIS .............................................. 6
1.1 Unidade Central de Processamento (CPU) .............................................................. 6
1.1.1 Unidade de Controle (UC) ......................................................................... 7
1.1.2 Unidade Lógica e Aritmética (ULA) ............................................................ 7
1.1.3 Banco de Registradores ............................................................................ 7
1.2 Memória do computador ...................................................................................... 8
1.2.1 Memória principal .................................................................................... 8
1.2.1.1 RAM ........................................................................................ 8
1.2.1.2 ROM ....................................................................................... 9
1.2.1.3 Memória flash ......................................................................... 9
1.3 Barramentos ....................................................................................................... 10
1.4 Dispositivos de entrada e saída ........................................................................... 10
1.4.1 Periféricos de entrada (E) ....................................................................... 11
1.4.2 Periféricos de saída (S) ........................................................................... 11
1.4.3 Periféricos de entrada/saída (E/S) ........................................................... 11
1.5 Infraestrutura de software .................................................................................. 12
1.5.1 Software básico ...................................................................................... 13
1.5.2 Software utilitário .................................................................................. 14
1.5.3 Software aplicativo ................................................................................. 14
1.5.1.1 Uso Geral .............................................................................. 14
1.5.1.2 Uso Específico ....................................................................... 14
Considerações Finais ................................................................................................ 15
Atividades de Autoaprendizagem .............................................................................. 15
Questionário Avaliativo ............................................................................................ 15
Bibliografia .............................................................................................................. 16
Lógica de Programação| Izabelly Morais e Max Azevedo | 6
1 Infraestrutura dos Sistemas
Computacionais
INTRODUÇÃO:
Conhecer o que se passa por traz da tela do computador é algo muito
importante para todo e qualquer profissional da área de tecnologia da
informação. Além de componentes eletrônicos, programas e dados, existe
toda uma organização dentro de um sistema computacional. Saber
discernir sobre cada um de seus elementos, entendendo sua
funcionalidade, é pré-requisito básico para quem quer se tornar um
programador ou um suporte técnico no mercado de informática. É sobre
isto que iremos discorrer ao longo desta aula.
1.1 Unidade Central de Processamento (CPU)
A principal característica dos computadores é a capacidade de processar
dados e informações de maneira rápida e precisa. O principal
componente responsável por essa característica é a CPU. A Unidade
Central de Processamento é o componente vital dos sistemas
computacionais. Ela é responsável pela realização das operações de
processamento, tais como adição, subtração, multiplicação, divisão entre
outros. Basicamente a função da CPU é buscar as instruções na memória
do computador, interpretar essas instruções que estão explicitadas na
memória, buscar dados, executar operações com esses dados e guarda-
los de volta na memória.
O processador é divido em três partes principais:
OBJETIVO:
Ao término desta aula você será capaz de compreender a infraestrutura
dos sistemas computacionais, discernindo sobre hardware, software e
peopleware.
Lógica de Programação| Izabelly Morais e Max Azevedo | 7
Unidade de Controle (UC);
Unidade Lógica e Aritmética (ULA); e
Banco de registradores.
1.1.1 Unidade de Controle (UC)
Essa unidade tem como função buscar e decodificar as instruções a
serem executadas. Ela também decide como e quando as outras unidades
serão ativadas. As instruções a serem executadas podem direcionar
dados para a ULA ou diretamente para o banco de registradores . Digamos
que a UC é sistema nervoso central do computador, fazendo um paralelo
com a mente humana.
1.1.2 Unidade Lógica e Aritmética (ULA)
A Unidade Lógica e Aritmética, como o próprio nome já permite perceber,
é a unidade cuja principal responsabilidade é executar as operações
lógicas e aritméticas exigidas pelas tarefas emanadas dos programas em
execução. Os dados numéricos a serem processados são enviados pela UC
e a ela são devolvidos para armazenamento ou outra destinação.
1.1.3 Banco de Registradores
O banco de registradores tem o papel de servir como um assistente de
acesso rápido. Em resumo, esse componente representa uma memória
temporária para armazenagem de tudo o que está sendo processado pela
ULA e/ou direcionado pela UC. Nele são guardadas as instruções em
execução, dados numéricos utilizados em cálculos e outros dados que
precisem ser temporariamente armazenados para dar celeridade ao
processamento.
Não devemos confundir banco de registradores com a
memória RAM do computador. Veremos, mais adiante, que
a memória RAM armazena dados por mais tempo que o
banco de registradores. A guarda de informações nesses
bancos é muito rápida, apenas enquanto algo está sendo
processado instantaneamente.
IMPORTANTE
Lógica de Programação| Izabelly Morais e Max Azevedo | 8
1.2 Memória do computador
Podemos definir memória de computador como um componente que
possui a capacidade de armazenar dados. Esses dados são armazenados
em pequenas células, onde todos os programas e dados em execução
ficam guardados por muito ou pouco tempo, dependendo do tipo de
memória da qual estejamos falando.
A memória do computador pode ser dividida, inicialmente, em dois tipos:
Memória principal: onde ficam armazenados apenas os dados e
programas em uso no momento.
Memória auxiliar: onde são guardadas as informações em caráter
definitivo, só sendo apagadas por meio de comandos intencionais por
parte do usuário.
1.2.1 Memória principal
Atualmente, o computador possui três tipos de memória principal. São
elas: RAM, ROM e flash.
1.2.1.1 RAM
A RAM (Random Access Memory - memória de acesso direto ou memória
viva) é a memória principal do sistema, ou seja, um espaço para
armazenar os dados, de maneira temporária, durante a execução de um
programa.
Para conhecer mais sobre os processadores, acesse o link:
https://www.youtube.com/watch?v=DFMCcuhWiXM
(Acesso em 14/10/2017)
SAIBA MAIS
https://www.youtube.com/watch?v=DFMCcuhWiXM
Lógica de Programação| Izabelly Morais e Max Azevedo | 9
Na verdade, ao contrário do armazenamento de dados em uma memória
de massa como o disco rígido, a memória RAM é volátil, isto é, ela
permite armazenardados somente enquanto estiver sendo alimentada
eletronicamente. Assim, cada vez que o computador for desligado, todos
os dados presentes na memória RAM serão apagados definitivamente.
1.2.1.2 ROM
A ROM (Read Only Memory - memória somente para leitura, ou memória
morta) é um tipo de memória que permite conservar as informações
contidas no dispositivo mesmo quando ele estiver desligado. A base deste
tipo de memória só pode ser acessada em leitura. Contudo, é possível
salvar informações em certos tipos de memórias ROM, como veremos a
seguir.
1.2.1.3 Memória flash
A memória flash é um misto entre as memórias de tipo RAM e as
memórias mortas (ROM). Esse tipo de memória é não-volátil, assim como
as memórias mortas, ou seja, foram projetadas apenas para serem lidas.
Por outro lado, as memórias flash podem ser regravadas pelo fabricante,
pois os chips que as compõem são similares aos que compõem as
memórias RAM.
A memória principal do computador se refere a uma
coleção de registradores enumerados sequencialmente,
onde cada um possui tamanho chamado de “tamanho da
palavra”. Cada registrador tem uma localização fixa na
memória, chamada de “localização de memória”. Ao
número único que identifica cada palavra na memória
damos o nome de “endereço”. Para quem trabalha com
linguagens de baixo nível, como Assembly, esse
conhecimento é fundamental. No entanto, para linguagens
de alto nível, esse conhecimento pode ser abstraído.
SAIBA MAIS
Lógica de Programação| Izabelly Morais e Max Azevedo | 10
1.3 Barramentos
Os barramentos possuem a responsabilidade interligar
os componentes internos de um computador, de modo
que a comunicação entre eles seja rápida e eficiente.
A figura 1 mostra como os barramentos conseguem
interligar os componentes funcionais básicos de um
computador. Observe que os controladores (da UC)
gerenciam os fluxos de dados entre a CPU
(processador), a memória principal e os dispositivos
de entrada e saída (E/S). Esses últimos serão alvo de
estudo na sequência.
1.4 Dispositivos de entrada e saída
Chamamos de periféricos a todos os equipamentos (ou
dispositivos) conectáveis ao computador. Estes
equipamentos permitem a troca de dados e informações
entre o usuário e o computador. Cada periférico tem sua
função específica e serve para enviar e/ou receber
dados ou tarefas do computador.
Da diversidade de dispositivos existentes , podemos
mencionar como os periféricos mais comuns:
Monitor de vídeo;
Teclado;
Mouse;
Impressora;
Scaner;
Unidades de armazenamento externas (discos rígidos,
cartões de memória, pen-drives, etc);
Caixas acústicas e fones de ouvido;
Microfones;
Figura 1 - Função dos barramentos. Fonte: os
autores.
Figura 2 - Monitores de vídeo são
considerados periféricos de saída, a menos
que sejam touch-screen. Neste caso são de
E/S. Fonte: https://pixabay.com/pt/monitor -
lcd-tela-hardware-v%C3%ADdeo-23329/
Figura 3 - Impressoras são periféricos de
saída, exceto as multifuncionais, que podem
escanear. Fonte:
https://pixabay.com/pt/jato-de-tinta-
impress%C3%A3o-impressora-147674/
Figura 4 - Pen-drives são considerados
periféricos de E/S. Fonte:
https://pixabay.com/pt/usb -disco-
armazenamento-tecnologia-47552/
Lógica de Programação| Izabelly Morais e Max Azevedo | 11
Câmeras (webcam);
Óculos 3D e de 360 graus para realidade virtual/aumentada;
Unidade leitoras e gravadoras de CDROM e DVDROM; entre outros.
Os periféricos podem ainda ser classificados como dispositivos de:
Entrada (E);
Saída (S); e
entrada/saída (E/S).
1.4.1 Periféricos de entrada (E)
Os periféricos de entrada são os dispositivos exclusivos
para entrada de dados no computador. Através deles, o
usuário envia dados à CPU para serem processados.
Alguns destes dispositivos são essenciais ao sistema, pois
sem eles seria impossível interagir com o sistema
computacional. Podemos destacar: o teclado e o mouse.
1.4.2 Periféricos de saída (S)
Os periféricos de saída são os dispositivos exclusivos para a saída de
informações vindas da CPU. Através destes dispositivos o usuário recebe
o resultado do processamento do computador. Temos como exemplos
desta categoria de dispositivos: monitores de vídeo, impressoras, plotters,
caixas acústicas, fones de ouvido, vídeo projetores, entre outros.
1.4.3 Periféricos de entrada/saída (E/S)
Os periféricos de entrada e saída são dispositivos que tanto transmitem
dados quanto os recebem. Estes dispositivos são responsáveis pela
comunicação máquina a máquina ou pelo armazenamento persistente de
dados. Temos como exemplos típicos destes dispositivos: interfaces de
rede, FAX/MODEM, gravadores de CD e DVD, pen-drives, cartões de
memória, monitores sensíveis ao toque (touch screen), entre outros.
Figura 5 - Óculos de realidade
aumentada em 360 graus. Fonte:
https://pixabay.com/pt/virtual -
realidade-jogar-%C3%B3culos-
2055227/
Lógica de Programação| Izabelly Morais e Max Azevedo | 12
1.5 Infraestrutura de software
Para fazer um computador funcionar, não basta o hardware. De nada
adiantaria toda a arquitetura que acabamos de estudar se não fosse um
conjunto de programas que é executado a cada vez que ligamos o
computador.
Figura 6 - Óculos 360 graus artesanal.
Fonte:
https://pt.wikipedia.org/wiki/Google_Card
board#/media/File:Google-Cardboard.jpg
Você sabe como funciona os óculos de realidade
aumentada, vulgarmente conhecidos como óculos de
360 graus? Trata-se de um dispositivo simples, onde
podemos inserir nosso aparelho celular e, ao
executarmos um vídeo gravado neste formato de 360
graus, temos a sensação de estarmos inseridos no
cenário em três dimensões. Ao girarmos nossa
cabeça, a imagem que vemos vai mudando, como se
estivéssemos dentro da cena, olhando para todos os
lugares, em todos as direções. Experiência fantástica!
Mas, espere aí? Temos uma polêmica à vista. Os
óculos de 360 graus podem ser considerados
periféricos apenas de saída? Ou podemos dizer que
ele é um dispositivo de E/S, uma vez que interferimos
no cenário com o nosso movimento?
Acesse o seu fórum de discussões e deixe sua opin ião a
respeito deste assunto aparentemente polêmico.
REFLITA
Lógica de Programação| Izabelly Morais e Max Azevedo | 13
Estamos falando do software básico que todo computador necessita para
manter-se ativo e operante.
1.5.1 Software básico
Esse tipo de software define o padrão de
comportamento do computador, de modo a
torná-lo utilizável. São exemplos de software
básico:
BIOS: Trata-se de um acrônimo para Basic
Input/Output System ou Sistema Básico de
Entrada e Saída. Este software já vem instalado
de fábrica na memória ROM (Read Only Memory)
do computador, e tem por finalidade inicializar
algumas tarefas consideradas vitais em um computador, como procurar
um sistema operacional gravado na primeira trilha do disco rígido, fazer a
varredura da memória RAM, entre outros procedimentos ditos pré -
operacionais.
Sistema Operacional: Após a
execução do BIOS, é este software que
assume total controle sobre o
computador, interpretando os
comandos e ações realizadas pelo
usuário. Os sistemas operacionais
mais comuns no mercado mundial são
o Windows (da Microsoft), o Mac-OS
(da Apple) e o Linux (sistema
operacional gratuito e de código fonte
aberto, não pertencendo a nenhuma
empresa especificamente).
Os sistemas operacionais já perpassaram os velhos PCs e notebooks, e já
estão invadindo os aparelhos celulares. Para esses dispositivosmóveis,
outros sistemas operacionais entram em cena, como por exemplo o
Android (da Google) e o iOS (da Apple). O Windows Mobile (da Micro soft)
foi descontinuado em 2017, e representava a terceira força nesse cada
vez mais disputado mercado mundial.
Figura 7 - Local físico onde é armazenado o BIOS.
Fonte:
https://img.ibxk.com.br/materias/Bios.jpg?w=700
Figura 8 - Interface de um sistema operacional Windows. Fonte:
https://pixabay.com/pt/windows-7-sistema-operacional-1995426/
Lógica de Programação| Izabelly Morais e Max Azevedo | 14
1.5.2 Software utilitário
Esses programas servem de complementação para os softwares básicos,
ou seja, são programas que possuem funcionalidades mais voltadas para
o Sistema Operacional. Como exemplos desse tipo de software podemos
citar as ferramentas para organizar os discos, verificador de
disponibilidade de memória, corretor de falhas de processamento, entre
muitos outros.
Boa parte dos programas utilitários são fornecidos pelo próprio fabricante
do sistema operacional, incluídos no pacote vendido ou previamente
instalado de fábrica. Mas existem muitos outros softwares utilitários que
podem ser adquiridos e/ou instalados em separado, como os antivírus,
firewalls (proteção contra hackers), compactadores de arquivos (como
WinZip, WinRA, etc), programas para conexão com redes, entre outros.
1.5.3 Software aplicativo
Os softwares aplicativos são programas voltados para solução de
problemas dos usuários. Podem ser divididos em duas categorias: uso
geral e uso específico.
1.5.1.1 Uso Geral
São aqueles programas que todos podem usar, independentemente de
suas áreas de atuação ou interesse. Esses softwares se prestam para as
mais variadas aplicações, como: editores de texto, geradores de gráficos,
planilhas eletrônicas, gerenciadores de bancos de dados, linguagens de
programação (compiladores e interpretadores), etc.
1.5.1.2 Uso Específico
Esses programas se destinam exclusivamente a um único tipo de
aplicação, como por exemplo: folha de pagamento, crediário, imposto de
renda, cadastro, contas a pagar e receber, contabilidade, etc.
Lógica de Programação| Izabelly Morais e Max Azevedo | 15
Considerações Finais
SAIBA MAIS:
Quer se aprofundar em algum dos temas desta aula?
Recomendamos o acesso à seguinte fonte de consulta e
aprofundamento: Vídeo: “Automec 2017 - Realidade aumentada para
as oficinas, mais um exemplo de novas tecnologias!! ”, acessível pelo
link https://youtu.be/cKk89waEPBQ (Acesso em 15/10/2017).
Atividades de Autoaprendizagem
ATIVIDADES:
Pronto para consolidar seus conhecimentos? Leia atentamente o
enunciado de sua atividade de autoaprendizagem proposta para esta
aula. Se você está fazendo o seu curso presencialmente, é só abrir o
seu caderno de atividades. Se você estiver cursando na moda lidade de
EAD (Educação a Distância), acesse a sua trilha de aprendizagem no seu
ambiente virtual e realize a atividade de modo online. Você pode
desenvolver esta atividade sozinho ou em parceria com seus colegas de
turma. Dificuldades? Poste suas dúvidas no fórum de discussões em seu
ambiente virtual de aprendizagem. Concluiu a sua atividade? Submeta o
resultado em uma postagem diretamente em seu ambiente virtual de
aprendizagem e boa sorte!
Questionário Avaliativo
TESTANDO:
Chegou a hora de você provar que aprendeu tudo o que foi abordado ao
longo desta aula. Para isto, leia e resolva atentamente as questões do
seu caderno de atividades. Se você estiver fazendo este curso a
distância, acesse o QUIZ (Banco de Questões) em seu ambiente virtual
de aprendizagem.
https://youtu.be/cKk89waEPBQ
Lógica de Programação| Izabelly Morais e Max Azevedo | 16
Bibliografia
TAVARES, A. L., Ana ECKEL, P., SCARPA, C., & VENDRAME, Z. R. (2006). Engenharia de
Software: uma visão geral. Palhoça: UNISUL. Acesso em 15 de Out de 2017,
disponível em
http://www.joinville.udesc.br/portal/professores/claudinei/materiais/SOFT_VI
SAO_GERAL.pdf
Lógica de Programação| Izabelly Morais e Max Azevedo | 17
Grupo SER Educacional | Lógica de Programação 1
LÓGICA DE PROGRAMAÇÃO
Lógica de Programação
IZABELLY MORAIS E MAX AZEVEDO
INTRODUÇÃO À LÓGICA
DE PROGRAMAÇÃO
ALGORÍTMICA
AULA 04
Diretor Executivo
DAVID LIRA STEPHEN BARROS
Direção Editorial
ANDRÉA CÉSAR PEDROSA
Projeto Gráfico
MANUELA CÉSAR DE ARRUDA
Autor
IZABELLY MORAIS E MAX AZEVEDO
Desenvolvedor
CAIO BENTO GOMES DOS SANTOS
O Autor
Izabelly Morais de Morais
Olá. Meu nome é Izabelly Morais. Sou licenciada em Ciência da
Computação pela Universidade Federal da Paraíba (UFPB), e mestre em
Ciência da Computação com ênfase em Engenharia de Software e
Linguagens de Programação pela Universidade Federal de Pernambuco
(UFPE). Leciono como professora formadora no Instituto Federal de
Pernambuco (IFPE) e na Faculdade Pitágoras (João Pessoa/PB), onde
tenho a oportunidade de transmitir minha experiência na área de
tecnologia e educação.
Max André de Azevêdo Silva
Olá. Meu nome é Max Azevêdo Silva. Sou formado em Licenciatura em
Ciência da Computação, pela Universidade Federal da Paraíba, e
mestrando em Ciência da Computação com ênfase em Engenharia de
Software pela Universidade Federal da Paraíba. Possuo experiência na
área de desenvolvimento de sistemas web, mobile e jogos eletrônicos.
Atualmente atuo como Analista de Sistemas.
A possibilidade de expor nossos conhecimentos adquiridos ao longo dos
anos é fantástica! Por isso fomos convidados pela Editora Telesapiens a
integrar seu elenco de autores independentes. Estamos muito felizes em
poder ajudar você nesta fase de muito estudo e trabalho. Conte conosco!
IZABELLY MORAIS E MAX AZEVEDO
“
Iconográficos
Olá. Meu nome é Manuela César de Arruda. Sou o responsável pelo
projeto gráfico de seu material. Esses ícones irão aparecer em sua trilha
de aprendizagem toda vez que:
INTRODUÇÃO
para o início do
desenvolvimento de
uma nova
competência;
DEFINIÇÃO
houver necessidade de
se apresentar um novo
conceito;
NOTA
quando forem
necessários
observações ou
complementações
para o seu
conhecimento;
IMPORTANTE
as observações
escritas tiveram
que ser priorizadas
para você;
EXPLICANDO
MELHOR
algo precisa ser
melhor explicado ou
detalhado;
VOCÊ SABIA?
curiosidades e
indagações lúdicas
sobre o tema em
estudo, se forem
necessárias;
SAIBA MAIS
textos, referências
bibliográficas e links
para aprofundamento
do seu conhecimento;
REFLITA
se houver a necessidade
de chamar a atenção
sobre algo a ser refletido
ou discutido sobre;
ACESSE
se for preciso acessar
um ou mais sites
para fazer download,
assistir vídeos, ler
textos, ouvir podcast;
RESUMINDO
quando for preciso se
fazer um resumo
acumulativo das
últimas abordagens;
ATIVIDADES
quando alguma
atividade de
autoaprendizagem for
aplicada;
TESTANDO
quando o
desenvolvimento de
uma competência for
concluído e questões
forem explicadas;
Sumário
1 INTRODUÇÃO À LÓGICA DE PROGRAMAÇÃO ALGORÍTMICA ..................................... 6
1.1 O que é Lógica? .................................................................................................... 6
1.2 Lógica no contexto computacional ........................................................................ 8
1.3 AlgoritmosComputacionais ................................................................................... 9
1.3.1 Fluxograma ............................................................................................ 10
1.3.2 Pseudocódigo ......................................................................................... 11
1.4 Dicas sobre algoritmização .................................................................................. 12
Considerações Finais ................................................................................................ 14
Atividades de Autoaprendizagem .............................................................................. 14
Questionário Avaliativo ............................................................................................ 14
Bibliografia .............................................................................................................. 15
Lógica de Programação| Izabelly Morais e Max Azevedo | 6
1 Introdução à Lógica de Programação
Algorítmica
INTRODUÇÃO:
Como já sabemos, existe uma enormidade de linguagens de
programação, desde as mais simples e intuitivas (de alto nível), até as
mais complexas e trabalhosas (de baixo nível). Independentemente de
que linguagem se adote, para solucionar problemas computacionais é
requerido do programador uma habilidade específica: a lógica de
programação algorítmica. Não se trata de habilidade com matemática ou
algo do gênero. Estamos falando de uma capacidade peculiar a todos os
que conseguem visualizar soluções racionais para problemas do dia a dia.
O raciocínio lógico, que é a base desta habilidade, já é matéria cobrada
em quase todos os editais de concursos públicos, e já é ensinado em
várias escolas de ensino fundamental e médio. Quem desenvolve essa
competência, é capaz de aprender rapidamente qualquer linguagem de
programação, pois, como já dissemos anteriormente, a diferença de uma
linguagem para a outra está apenas na semântica e no dicionário de
comandos.Programar computadores é uma tarefa tão natural quanto
escrever um pequeno manual sobre como trocar o pneu de um carro.
Qualquer um é capaz de fazer!
1.1 O que é Lógica?
Damos início a este tópico debatendo um pouco sobre nosso cotidiano.
Isso mesmo! Falaremos sobre as atividades que você desempenha no seu
dia a dia, como tomar café, ir à escola ou até mesmo ir ao trabalho.
OBJETIVO:
Ao término desta aula você será capaz de definir e entender o conceito e
as funcionalidades da lógica de programação e algoritmos computacionais.
Lógica de Programação| Izabelly Morais e Max Azevedo | 7
Toda ação que executamos, nos remete a um objetivo final . Por exemplo,
quando estamos com fome, sempre vamos atrás de saná-la, por meio da
alimentação. Dessa forma, toda tomada de decisão em um algoritmo
computacional deve ser baseada na lógica de se atingir algum objetivo.
Conforme o Dicionário Aurélio (2017), o termo lógica está associado à
“análise que estuda as proposições e seus membros componentes” . Já
Forbellone (2005, p.1) diz que:
[...] a lógica pode estar relacionada com a „correção do
pensamento‟, pois uma de suas preocupações é
determinar quais operações são válidas e quais não são,
fazendo análises das formas e leis do pensamento.
Ainda sob a ótica do autor, ela nos ensina a usar
corretamente as leis do pensamento, ou seja, ela ensina
a colocar „ordem no pensamento‟.
A lógica está interligada à solução de algum problema que traz
características que não estão relacionadas à determinada situação.
Por exemplo, se precisamos realizar cálculos
matemáticos, e nossa calculadora não está realizando
as quatro operações matemáticas de forma correta,
então temos um problema a ser resolvido. E é através
da lógica matemática que conseguimos visualizar
esta situação problemática e trazer uma ou mais
possíveis soluções.
A lógica computacional traz um conceito de solução de
problemas, podendo muitas vezes ser aplicada a diversas
situações do nosso cotidiano. Por exemplo, quando
inserimos um endereço em um GPS e ele nos retorna
diversas possíveis rotas, aplicamos certa lógica para
escolher a rota mais adequada para nós, seja pela
quilometragem, ou pelo tipo de estrada.
EXPLICANDO MELHOR
Lógica de Programação| Izabelly Morais e Max Azevedo | 8
1.2 Lógica no contexto computacional
A lógica não deve estar ligada apenas aos conceitos que norteiam a
matemática. Para utilizá-la em favor da solução dos problemas
computacionais, precisamos aplicá-la aos recursos disponíveis nos
sistemas computacionais.
Uma definição bastante completa sobre lógica de programação foi
lançada por Forbellone (2005, p. 14), que a conceitua como:
[...] o uso correto das leis do pensamento da “ordem da
razão” e de processos de raciocínio e simbolização
formais na programação de computadores, objetivando
a racionalidade e o desenvolvimento de técnicas que
cooperem para a produção de soluções logicamente
válidas e coerentes, que resolvam com qualidade os
problemas que se deseja programar.
Por exemplo, a lógica necessária para se troca o pneu de
um carro articula recursos como macaco, parafusos, jante,
pneu, carro, etc. Já na programação do computador para
ler um arquivo de dados e imprimir um relatório,
envolvemos outros recursos, como memória, disco, dados,
impressora e papel. Contudo, tanto em um caso quanto
em outro, a forma de se raciocinar é a mesma: juntar
comandos e manipular recursos para se atingir um
objetivo específico ao final do processamento.
EXPLICANDO MELHOR
A lógica de programação, portanto, pode ser definida
como a técnica necessária para nortear o desenvolvimento
de um software, o qual deve seguir certas regras para
atingir o seu objetivo.
DEFINIÇÃO
Lógica de Programação| Izabelly Morais e Max Azevedo | 9
A lógica de programação computacional é aplicada, por exemplo, na
seleção e determinação de quais instruções devem ser executadas para
que o problema seja solucionado. Por meio de sua aplicação, podemos
ter resultados lógicos que irão satisfazer nossas condições, ou seja,
nenhuma instrução é inserida sem uma funcionalidade.
1.3 Algoritmos Computacionais
Podemos fazer uso de variados modos para representar a solução de um
problema, computacional ou não. Quando se define um conjunto de
regras sintáticas para expressar raciocínios e operações necessárias à
solução de uma classe de problemas, tem-se um algoritmo. Se tais
problemas forem de cunho computacional, tem-se um algoritmo
computacional.
Para entendermos melhor o conceito de algoritmo computacional, vamos
imaginar a representação gráfica do seguinte problema: Decidir qual o
maior entre dois números lidos pelo computador. Um problema simples
deve apresentar uma solução igualmente simples, portanto, podemos
representar esta solução algorítmica de duas maneiras: gra ficamente ou
textualmente, como apresentado a seguir.
Algoritmo computacional é uma visão esquemática sobre
a solução de uma classe de problemas computacionais,
podendo ser representado gráfica ou textualmente, por
meio de um pseudocódigo escrito em uma
pseudolinguagem.
DEFINIÇÃO
Lógica de Programação| Izabelly Morais e Max Azevedo | 10
1.3.1 Fluxograma
Figura 1 - Representação algorítmica por meio de fluxograma. Fonte: https://wiki.portugal-a-
programar.pt/_media/algoritmo:fluxograma.jpg
Observe que a solução algorítmica adotada na figura 1 está sendo
representadagraficamente por uma simbologia denominada
“fluxograma”. Nesta solução foram adotados comandos visuais,
compreensíveis facilmente por qualquer um, de forma bastante intuitiva.
Mas, para isto, foi necessário se estabelecer um dicionário de comandos,
que neste caso contemplou os seguintes:
Figura 2 - Destacando os comandos visuais do fluxograma. Fonte: idem.
Marca o início ou o término
de um algoritmo
Lê ou exibe um
dado/informação
Executa um procedimento
Desvia o fluxo de
procedimentos conforme a
condição descrita
Desvia o fluxo de
procedimentos para outro
algoritmo
Lógica de Programação| Izabelly Morais e Max Azevedo | 11
1.3.2 Pseudocódigo
Outro modo de se representar uma solução algorítmica é por meio de
textos, ou pseudocódigos. Do grego, “pseudo” significa falso, o que faz do
pseudocódigo um código escrito em uma linguagem que, na prática, não
existe. Em outras palavras, o pseudocódigo evidencia uma forma genérica
de se escrever um algoritmo, utilizando uma linguagem simples,
compreensível por qualquer pessoa, sem que esta pessoa conheça a
sintaxe de nenhuma linguagem de programação. Transcrevendo o
algoritmo esquematizado no fluxograma anterior, poderíamos escrever o
seguinte pseudocódigo:
INÍCIO
LER NUM1
LER NUM2
SE NUM1 > NUM2
ENTÃO
ESCREVER “O maior é: ” & NUM1
SENÃO
SE NUM1 < NUM2
ENTÃO
ESCREVER “O maior é: ” & NUM2
SENÃO
ESCREVER “São iguais”
FIMSE
FIMSE
FIM
Perceba que ambas as representações algorítmicas conseguem
solucionar o mesmo problema, com exatamente o mesmo ordenamento
lógico. O que as diferencia é tão somente a semântica da linguagem.
Enquanto na primeira solução foi adotada uma linguagem visual
(fluxograma ou diagrama de blocos), na segunda foi utilizada uma
linguagem natural, que no caso foi a própria língua portuguesa.
Lógica de Programação| Izabelly Morais e Max Azevedo | 12
1.4 Dicas sobre algoritmização
Assim como toda atividade que desempenhamos no nosso dia a dia,
algoritmizar uma solução computacional exige escolhas sábias. Ascencio
et al (2012) destacam os seguintes passos:
1. Ler atentamente o enunciado, destacando os pontos mais
importantes.
2. Definir os dados de entrada, ou seja, quais dados serão fornecidos.
3. Definir o processamento, ou seja, quais cálculos serão efetuados e
quais as restrições para esses cálculos. O processamento é responsável
pela transformação dos dados de entrada em informações de saída.
4. Definir as informações de saída, ou seja, quais informações serão
geradas depois do processamento.
É possível elaborarmos um programa diretamente na
linguagem de programação verdadeira, sem termos
que passar pela fase da solução algorítmica?
A resposta é afirmativa, ou seja, podemos sim
literalmente “meter a mão na massa” e elaborar
nossos programas utilizando a própria linguagem de
programação comercial como ferramenta de solução
algorítmica.
Então por que existem pseudocódigos e fluxogramas
para representar soluções computacionais?
A reposta é igualmente simples: os algoritmos são
instrumentos que cumprem duas funções distintas:
cognitiva (na fase em que se está aprendendo a
programar); e didática (para facilitar o entendimento de
pessoas leigas que precise interagir com a solução).
REFLITA
Lógica de Programação| Izabelly Morais e Max Azevedo | 13
5. Construir o algoritmo utilizando um dos tipos descritos
anteriormente.
6. Testar o algoritmo realizando simulações.
Podemos ter diversos algoritmos desenvolvidos de
maneiras diferentes, ou seja, com etapas distintas, porém,
que solucionam o mesmo problema. Cada pessoa tem seu
modo de pensar, dessa forma, não é obrigado que todos
tenhamos a mesma ideia, ou até mesmo executemos
ações da mesma maneira!
VOCÊ SABIA?
Conforme Manzano (2004), “a norma ISO 5807 -1985 para
a definição e elaboração de diagramas de fluxos para a
área de desenvolvimento e projeto de software é a
consolidação de duas normas anteriores: ISO 10282 e ISO
26363. Segundo informação da própria norma ISO 5807-
1985 (E), a definição e elaboração de diagramas para a
representação gráfica da linha de raciocino lógico a ser
adotada não deve restringir o uso de aplicações ou
soluções particulares, uma vez que pode ocorrer a
existência de vários tipos de soluções para os vários
problemas de processamento de informação” (ISO 5807,
1985, p. 1 apud Manzano,2004).
IMPORTANTE
Lógica de Programação| Izabelly Morais e Max Azevedo | 14
Considerações Finais
SAIBA MAIS:
Quer se aprofundar em algum dos temas desta aula?
Recomendamos o acesso à seguinte fonte de consulta e
aprofundamento: Vídeo: “Introdução a algoritmos – curso algoritmos
#01” (GUANABARA, 2014), acessível pelo link:
https://www.youtube.com/watch?v=8mei6uVttho (Acesso em
19/09/2017).
Atividades de Autoaprendizagem
ATIVIDADES:
Pronto para consolidar seus conhecimentos? Leia atentamente o
enunciado de sua atividade de autoaprendizagem proposta para esta
aula. Se você está fazendo o seu curso presencialmente, é só abrir o
seu caderno de atividades. Se você estiver cursando na modalidade de
EAD (Educação a Distância), acesse a sua trilha de aprendizagem no seu
ambiente virtual e realize a atividade de modo online. Você pode
desenvolver esta atividade sozinho ou em parceria com seus colegas de
turma. Dificuldades? Poste suas dúvidas no fórum de discussões em seu
ambiente virtual de aprendizagem. Concluiu a sua atividade? Submeta o
resultado em uma postagem diretamente em seu ambiente virtual de
aprendizagem e boa sorte!
Questionário Avaliativo
TESTANDO:
Chegou a hora de você provar que aprendeu tudo o que foi abordado ao
longo desta aula. Para isto, leia e resolva atentamente as questões do
seu caderno de atividades. Se você estiver fazendo este curso a
distância, acesse o QUIZ (Banco de Questões) em seu ambiente virtual
de aprendizagem.
https://www.youtube.com/watch?v=8mei6uVttho
Lógica de Programação| Izabelly Morais e Max Azevedo | 15
Bibliografia
ASCENCIO, A. F., & CAMPUS, E. A. (2012). Fundamentos da Programação de
Computadores (Algoritmos, Pascal, C/C+ e Java) (3a. ed.). São Paulo:
Prentice Hall.
DICIONÁRIO do Aurélio (versão online). (2017). Acesso em 2017, disponível em
https://dicionariodoaurelio.com/logica
FORBELLONE, A. L. (2005). Lógica de programação: a construção de algoritmos e
estrutura de dados. São Paulo: Pearson.
MANZANO, J. A., & OLIVEIRA, J. F. (2016). Algoritmos: Lógica para desenvolvimento
de programação de computadores (28. ed.). São Paulo: Érica.
Lógica de Programação| Izabelly Morais e Max Azevedo | 16
Grupo SER Educacional | Lógica de Programação 1
LÓGICA DE PROGRAMAÇÃO
Lógica de Programação
IZABELLY MORAIS E MAX AZEVEDO
CONSTANTES E
VARIÁVEIS DE
MEMÓRIA
AULA 05
Diretor Executivo
DAVID LIRA STEPHEN BARROS
Direção Editorial
ANDRÉA CÉSAR PEDROSA
Projeto Gráfico
MANUELA CÉSAR DE ARRUDA
Autor
IZABELLY MORAIS E MAX AZEVEDO
Desenvolvedor
CAIO BENTO GOMES DOS SANTOS
O Autor
Izabelly Morais de Morais
Olá. Meu nome é Izabelly Morais. Sou licenciada em Ciência da
Computação pela Universidade Federal da Paraíba (UFPB), e mestre emCiência da Computação com ênfase em Engenharia de Software e
Linguagens de Programação pela Universidade Federal de Pernambuco
(UFPE). Leciono como professora formadora no Instituto Federal de
Pernambuco (IFPE) e na Faculdade Pitágoras (João Pessoa/PB), onde
tenho a oportunidade de transmitir minha experiência na área de
tecnologia e educação.
Max André de Azevêdo Silva
Olá. Meu nome é Max Azevêdo Silva. Sou formado em Licenciatura em
Ciência da Computação, pela Universidade Federal da Paraíba, e
mestrando em Ciência da Computação com ênfase em Engenharia de
Software pela Universidade Federal da Paraíba. Possuo experiência na
área de desenvolvimento de sistemas web, mobile e jogos eletrônicos.
Atualmente atuo como Analista de Sistemas.
A possibilidade de expor nossos conhecimentos adquiridos ao longo dos
anos é fantástica! Por isso fomos convidados pela Editora Telesapiens a
integrar seu elenco de autores independentes. Estamos muito felizes em
poder ajudar você nesta fase de muito estudo e trabalho. Conte conosco!
IZABELLY MORAIS E MAX AZEVEDO
“
Iconográficos
Olá. Meu nome é Manuela César de Arruda. Sou o responsável pelo
projeto gráfico de seu material. Esses ícones irão aparecer em sua trilha
de aprendizagem toda vez que:
INTRODUÇÃO
para o início do
desenvolvimento de
uma nova
competência;
DEFINIÇÃO
houver necessidade de
se apresentar um novo
conceito;
NOTA
quando forem
necessários
observações ou
complementações
para o seu
conhecimento;
IMPORTANTE
as observações
escritas tiveram
que ser priorizadas
para você;
EXPLICANDO
MELHOR
algo precisa ser
melhor explicado ou
detalhado;
VOCÊ SABIA?
curiosidades e
indagações lúdicas
sobre o tema em
estudo, se forem
necessárias;
SAIBA MAIS
textos, referências
bibliográficas e links
para aprofundamento
do seu conhecimento;
REFLITA
se houver a necessidade
de chamar a atenção
sobre algo a ser refletido
ou discutido sobre;
ACESSE
se for preciso acessar
um ou mais sites
para fazer download,
assistir vídeos, ler
textos, ouvir podcast;
RESUMINDO
quando for preciso se
fazer um resumo
acumulativo das
últimas abordagens;
ATIVIDADES
quando alguma
atividade de
autoaprendizagem for
aplicada;
TESTANDO
quando o
desenvolvimento de
uma competência for
concluído e questões
forem explicadas;
Sumário
1 CONSTANTES E VARIÁVEIS DE MEMÓRIA ................................................................. 8
1.1 Conceito e tipos de dados ..................................................................................... 8
1.1.1 Tipos de dados ......................................................................................... 9
1.1.1.1 Dado numérico ....................................................................... 9
1.1.1.2 Dado alfanumérico ................................................................ 10
1.1.1.3 Dado lógico........................................................................... 11
1.2 Variáveis ............................................................................................................ 12
1.3 Operadores ........................................................................................................ 15
1.4 Depuração de algoritmos .................................................................................... 17
1.5 VisuALG .............................................................................................................. 19
1.5.1 Declaração de variáveis .......................................................................... 20
Considerações Finais ................................................................................................ 23
Atividades de Autoaprendizagem .............................................................................. 23
Questionário Avaliativo ............................................................................................ 23
Bibliografia .............................................................................................................. 24
Trilha de Aprendizagem
Olá. Meu nome é Andréa César. Sou responsável pela direção editorial
deste livro didático e de todos os demais recursos relacio nados com a sua
trilha de aprendizagem. Você está iniciando seus estudos sobre LÓGICA
DE PROGRAMAÇÃO, e o nosso objetivo é auxiliar você no desenvolvimento
das competências necessárias ao seu exercício profissional. Para isto,
distribuímos os conteúdos didáticos deste livro em quatro semanas de
estudo, onde, em cada uma delas, haverá uma competência a ser
construída. Cada uma dessas competências será desenvolvida por meio
de quatro atividades de estudo, que podemos chamar de “aulas”. Em
cada aula, você terá uma introdução ao tema abordado, os objetivos a
serem alcançados, uma atividade de autoaprendizagem proposta e uma
lista de exercícios a serem respondidos. Quer saber quais serão as
competências que você irá desenvolver ao longo dessas quatro semanas
de estudo? Então vamos a elas:
Compreender os conceitos fundamentais da ciência da computação, 1.
sobretudo no que concerne a softwares e programação de
computadores.
Desenvolver algoritmos estruturados envolvendo operações com 2.
variáveis e comandos condicionais simples.
Utilizar estruturas condicionais encadeadas e iterativas, além de 3.
efetuar operações envolvendo vetores.
Trabalhar com matrizes e modulação de algoritmos, como 4.
procedimentos e funções.
Ao longo desta semana iremos desenvolver a competência de número: 2.
Vamos arregaçar as mangas? Ao trabalho!
Lógica de Programação| Izabelly Morais e Max Azevedo | 7
2ª SEMANA DE ESTUDOS
INTRODUÇÃO:
gora que já conhecemos o universo do hardware e do
software, vamos mergulhar de cabeça no mundo dos
algoritmos computacionais, começando pela manipulação
de constantes e variáveis de memória simples. Lembre-se,
a partir de agora, é fundamental que, a cada novo tema de estudo, você
exercite ao máximo. Para isto, ao término de cada aula, acesse a sua
atividade de autoavaliação e seu questionário avaliativo, resolvendo
todos os problemas de algoritmização propostos.
OBJETIVOS:
Ao término desta semana de estudos, você será capaz de:
Entender os conceitos de constantes e variáveis de memória, bem
como a forma de manipulá-las em uma solução algorítmica.
Utilizar expressões aritméticas envolvendo constantes e variáveis
numéricas em soluções algorítmicas.
Utilizar expressões literais envolvendo constantes e variáveis
alfanuméricas em soluções algorítmicas.
Aplicar estruturas condicionais simples em soluções algorítmicas.
Mãos à obra? Conte com a gente!
A
Lógica de Programação| Izabelly Morais e Max Azevedo | 8
1 Constantes e Variáveis de Memória
INTRODUÇÃO:
Seguramente, um dos conceitos mais importantes no universo da
programação de computadores é o de variável de memória. Sem as
variáveis seria praticamente impossível submeter um dado a um
processamento. É isso aí. Para processar um dado, é necessário guardá -lo
em algum lugar. É a este lugar que damos o nome de variável de
memória. A partir de agora, iremos estudar as muitas maneiras de se
manipular uma variável de memória em um algoritmo. E por falar em
algoritmo, para efeito do restante desta disciplina, iremos utilizar o
método de representação no formato de pseudocódigo, utilizando a
própria língua portuguesa como base para escrevermos todo e qualquer
algoritmo.
1.1 Conceito e tipos de dados
Como já estudamos anteriormente, em uma solução algorítmica sempre
haverá um dado a ser processado e transformadoem informação ou
ação. Logo que este dado entra no sistema computacional, ele precisa ser
armazenado em uma variável de memória. A partir de então, inicia -se o
processamento do dado propriamente dito, podendo este dado passar por
uma série de outras variáveis de memória, a depender do objetivo do
processamento e da lógica de programação algorítmica pensada pelo
programador.
Então, precisamos entender melhor o que é e como se comporta este
dado a ser armazenado em uma variável de memória. Vamos a isto?
OBJETIVO:
Ao término desta aula você será capaz de entender os conceitos de
constantes e variáveis de memória, bem como a forma de manipulá -las em
uma solução algorítmica.
Lógica de Programação| Izabelly Morais e Max Azevedo | 9
1.1.1 Tipos de dados
Os dados, portanto, podem ser qualquer fragmento de informação que
possa ser armazenado na memória do computador.
Estamos falando de um nome, um número telefônico, um endereço, um
salário, uma fotografia, uma música, enfim, tudo o que possa ser
armazenado e venha a participar de um processamento.
Embora um dado possa ser tudo isto, classificamo-nos em três tipos
fundamentais:
1.1.1.1 Dado numérico
Um dado numérico pode ser um número inteiro ou
fracionário, positivo ou negativo, de todo e qualquer
tamanho, inclusive zero. A seguir, vemos alguns
exemplos de como esses dados são representados em
um algoritmo:
4568 = Número inteiro positivo;
35,5 = Número fracionário positivo;
-104 = Número inteiro negativo;
-0,458 = Número fracionário negativo;
4,5678E+7 = Número inteiro positivo em notação científica
de base 10 (quatro vírgula cinco, seis, sete, oito, vezes dez
elevado à sétima potência), equivalendo ao número inteiro 45678000;
-4,5678E+7 = Número inteiro negativo em notação científica de base 10
(menos quatro vírgula cinco, seis, sete, oito, vezes dez elevado à sétima
potência), equivalendo ao número inteiro -45678000;
6,5E-3 = Número fracionário positivo em notação científica de base 10 (seis
vírgula cinco vezes dez elevado à menos três), equivalendo ao número 0,0065;
Figura 1 - Ilustração. Fonte:
https://pixabay.com/pt/pagar -n%C3%BAmeros-
arranjo-c%C3%ADrculo-530338/
Dados são fragmentos de informações que precisam ser
processados para se transformar em uma informação
completa e inteligível.
DEFINIÇÃO
Lógica de Programação| Izabelly Morais e Max Azevedo | 10
-6,5E-3 = Número fracionário negativo em notação científica de base 10
(menos seis vírgula cinco vezes dez elevado à menos três), equivalendo ao
número 0,0065.
1.1.1.2 Dado alfanumérico
Um dado alfanumérico, também denominado dado
literal ou caractere, pode ser um texto contendo
letras, algarismos e outros símbolos especiais. Um
dado alfanumérico tem seu tamanho medido em
número de caracteres. Um caractere é a menor
parte que compõe um dado deste tipo.
Esse tipo de dado é representado por quaisquer valores, símbolos,
palavras ou frases entre aspas, como demonstrado a seguir:
“Telesapiens” = Palavra;
“045223-X” = Texto alfanumérico, contendo números e caracteres;
“@#$%&*()” = Texto alfanumérico contendo símbolos.
Figura 2 - Ilustração. Fonte:
https://pixabay.com/pt/alfabeto-abc-rosa-
letras-fonte-491642/
Em inglês, esse tipo de dado é conhecido como “string”,
que quer dizer “cadeia” ou “corda”. Esse termo remete ao
sentido de cadeia de caracteres, ou seja, um conjunto de
caracteres concatenados.
NOTA
Quem é maior?
“1200” ou 215 ?
REFLITA
Lógica de Programação| Izabelly Morais e Max Azevedo | 11
1.1.1.3 Dado lógico
Um dado lógico, também conhecido como dado booleano, é um tipo de
dado que só pode assumir um entre dois valores: verdadeiro ou falso.
Dada essa característica, esse tipo de dado também é conhecido como
dado binário, e é representado, em um algoritmo, como:
VERDADEIRO; ou
FALSO.
Figura 3 - Ilustração. Fonte:
https://pixabay.com/pt/sem%C
3%A1foro-vetor-tr%C3%A1fego-
estrada-2731969/
O que diferencia um dado numérico de um
alfanumérico, quanto à sua representação em um
algoritmo é a presença ou não de um par de
delimitadores tipo aspa (“...”). Assim sendo, podemos
afirmar que os dados abaixo são completamente
diferentes sob o ponto de vista do tipo de dado:
215 <> “1200”
O dado a esquerda se refere ao número 215 (duzentos e
quinze). Já o da direita não representa um número, mas
sim uma cadeia de caracteres composta dos símbolos “1”,
“2”, “0”, e “0”. Portanto, não há como responder o
questionamento lançado anteriormente, ou seja, não dá
para comparar os dois dados acima.
EXPLICANDO MELHOR
Lógica de Programação| Izabelly Morais e Max Azevedo | 12
1.2 Variáveis
Para Manzano et al. (2008, p.25), podemos adotar a seguinte definição:
No contexto computacional, podemos entender uma variável como uma
caixa vazia (variável de memória), que é colocada em uma estante com
vários compartimentos (memória).
O algoritmo é quem define que
dados serão armazenados em
que variáveis de memória, por
quanto tempo, e para que
finalidade. Ele também
estabelece que tipo de dado
poderá ser armazenado em cada
variável, bem como o nome que
a identificará.
Para entendermos melhor tudo
isto, vamos visualizar o
comportamento de algumas
variáveis após serem
processadas pelas instruções abaixo:
Figura 4 - Ilustração em referência ao conceito de variáveis de memória.
Fonte: https://pixabay.com/pt/arquivo-morto-estante-caixas-1850170/
Variável é tudo aquilo que é sujeito a variações, que é
incerto, instável ou inconstante. E ao relacionarmos o
termo com o contexto computacional, devemos ter em
mente que o volume de informações a serem tratadas é
imensurável, tendo em vista que não podemos definir
valores e proporções, aspectos estes, que irão variar
conforme o problema a ser solucionado.
DEFINIÇÃO
Lógica de Programação| Izabelly Morais e Max Azevedo | 13
A 1
B 2
A A + B
1. No trecho deste algoritmo, uma variável de nome A recebeu um dado
numérico de valor 1.
2. Em seguida, uma outra variável de nome B recebeu um outro dado,
também numérico, de valor 2.
3. Por fim os dados contidos nas variáveis A e B foram somados e
colocados na variável A, que teve seu valor original (1) substituído por um
novo (3).
Ainda neste trecho de algoritmo, dizemos que A e B são variáveis, e os
números 1 e 2 são constantes. Assim sendo, vejamos algumas definições:
Instruções
1
2
3
Para se atribuir uma constante ou o conteúdo de uma
variável ou expressão a uma variável de memória, utiliza -
se o operador “” na instrução.
DEFINIÇÃO
Uma constante é um dado usado normalmente numa
expressão matemática, caractere ou lógica, que define um
valor de equilíbrio que se mantém inalterado,
independentemente das variáveis envolvidas.
DEFINIÇÃO
Lógica de Programação| Izabelly Morais e Max Azevedo | 14
Vejamos alguns novos exemplos de variáveis e constantes envolvidas em
outras operações e expressões:
NOME “JOÃO”
SOBRENOME “DA SILVA”
NOMECOMPLETO NOME & SOBRENOME
1. Desta vez, uma variável de nome NOME recebeu uma constante
alfanumérica igual a “JOÃO”.
2. Em seguida, uma outra variável de nome SOBRENOME recebeu um
outro dado, também alfanumérico, igual a “DA SILVA”.
3. Por fim os dados contidos nas variáveisNOME e SOBRENOME foram
concatenados e colocados em uma terceira variável intitulada
NOMECOMPLETO.
Se você assinalou a alternativa (E), acertou!
Depois do processamento das instruções de 1 a 3
acima, qual o conteúdo resultante da variável
NOMECOMPLETO?
(A) “JOÃO DA SILVA”
(B) “DA SILVA”
(C) “JOÃO”
(D) “JOÃODASILVA”
(E) “JOÃODA SILVA”
REFLITA
Lógica de Programação| Izabelly Morais e Max Azevedo | 15
1.3 Operadores
Acabamos de visualizar algumas instruções em dois exemplos de
algoritmo. Vimos que, nessas instruções, existem alguns sinais que
representam uma determinada operação, como a soma (A+B) e a
concatenação (NOME&SOBRENOME). Foram utilizados, respectivamente,
os seguintes operadores nessas instruções:
+ Operador Soma Atua sobre variáveis e constantes
numéricas
& Operador Concatenação Atua sobre variáveis e constantes
alfanuméricas
A adoção de certos símbolos como “+” e “&” para servirem de operadores
em uma instrução faz parte da função sintática da linguagem de
programação. A seguir, vamos apresentar outros operadores adotados
pela linguagem algorítmica, segundo Manzano (2008):
Ao concatenarmos duas variáveis, como no exemplo
acima, simplesmente os conteúdos das mesmas são
justapostos um após o outro. Assim, na expressão:
NOMECOMPLETO NOME & SOBRENOME
os seguintes dados serão concatenados:
NOMECOMPLETO “JOÃO” & “DA SILVA”
O resultado da concatenação, portanto, é:
“JOÃODA SILVA”
Ou seja, sem o espaço em branco antes de “DA SILVA”.
EXPLICANDO MELHOR
Lógica de Programação| Izabelly Morais e Max Azevedo | 16
- Operador Subtração Atua sobre variáveis e constantes
numéricas
* Operador Multiplicação Atua sobre variáveis e constantes
numéricas
/ Operador Divisão Atua sobre variáveis e constantes
numéricas
^ Operador Potenciação Atua sobre variáveis e constantes
numéricas
Vejamos alguns novos exemplos de instruções envolvendo operações com
variáveis:
X 300
Y 150
Z X/Y^2
Após serem executadas essas instruções, o valor da variável Z será igual
a 4, uma vez que Z 300/150^2. Logo Z 2^2, ou seja, Z 4.
1. Nas próximas aulas teremos a oportunidade de
conhecer outros operadores, como os lógicos, por
exemplo.
O operador de potenciação “^” também pode ser
representado por “**”, conforme defendem alguns
autores.
NOTA
Lógica de Programação| Izabelly Morais e Max Azevedo | 17
Se você assinalou a alternativa (E), acertou novamente!
1.4 Depuração de algoritmos
No exemplo utilizado no tópico anterior, vivenciamos uma situação de
“erro de programa”. A partir de agora, situações como esta serão
rotineiras para você. Todo programador lida com erros de programa todos
O que aconteceria se, após o processamento das
instruções do exemplo anterior, acrescentássemos a
seguinte: CARRO Z & “ POR 4” ?
(A) “4POR 4”
(B) “4 POR 4”
(C) “QUATRO POR QUATRO”
(D) 16
(E) Nenhuma das alternativas.
REFLITA
O resultado de uma operação envolvendo variáveis de
tipos diferentes é indefinido, ou seja, esse tipo de
instrução provoca um erro de execução do algoritmo em
tela. E este é exatamente o caso, pois, como vimos
anteriormente, o conteúdo da variável Z é do tipo
numérico, enquanto o operador utilizado na última
instrução (& = concatenação) é um operador literal
(alfanumérico).
EXPLICANDO MELHOR
Lógica de Programação| Izabelly Morais e Max Azevedo | 18
os dias e em todas as horas de cada dia. Por isto, ao concluir seu
algoritmo ou programa, não hesite em testá-lo (ou depurá-lo).
Erros de programação (ou de algoritmização) acontecem por vários
motivos. Podemos classificar esses muitos motivos nas seguintes
categorias:
Erro de sintaxe: ocorre quando uma instrução não é escrita de acordo
com as regras gramaticais da linguagem, ou seja, conforme a sintaxe da
instrução.
Erro de dados: acontece toda vez que constantes ou variáveis de
diferentes tipos são envolvidas em uma mesma operação, como vimos no
exemplo anterior.
Overflow: do inglês, este termo significa sobrecarga, e ocorre toda vez
que o limite de tamanho de uma variável é excedido. Cada linguagem de
programação estabelece o limite de cada tipo de variável.
Looping: também do inglês, podemos traduzir esse termo como
repetição sem fim. Isto não é propriamente um erro de programação, mas
de lógica de programação, pois, por uma situação não prevista pelo
programador, as instruções ficam sendo processadas em círculos par a
sempre ou até o programa ser cancelado.
Indefinição: ocorre toda vez que um cálculo resulta em um valor
indefinido ou inexistente, como uma divisão por zero, por exemplo.
Depuração é a técnica utilizada por programadores e
outros profissionais para testar um programa ou processo
repetitivo qualquer. Trata-se de um ato continuo que se
repete até que seja atingido o ZERO erro.
DEFINIÇÃO
Lógica de Programação| Izabelly Morais e Max Azevedo | 19
1.5 VisuALG
Você conhece o VisuALG? Trata-se de um aplicativo para PC
(computadores desktop ou notebooks) com o sistema operacional
Windows instalado, cuja finalidade é simular a execução de um algoritmo
escrito na língua portuguesa.
Na prática, o VisuALG é um software interpretador de algoritmos escritos
em pseudocódigos. Sua interface é dialógica e extremamente intuitiva ,
mesmo para principiantes na área de programação.
Sua tela é dividida em três partes bem distintas:
(A) Área dos algoritmos;
(B) Área das variáveis de memória;
(C) Área de visualização dos resultados.
Figura 5 - Interface do Visual G versão 3.0. Fonte: http://visualg3.com.br/ (Acesso em 18/10/2017).
A
B
C
Faça o download e instale em seu computador pelo link:
http://visualg3.com.br/ (Acesso em 18/10/2017).
ACESSE
http://visualg3.com.br/
Lógica de Programação| Izabelly Morais e Max Azevedo | 20
Com o VisuALG será possível testar todos os algoritmos que iremos
desenvolver ao longo desta disciplina. Vamos começar aprendendo como
este interpretador aceita a manipulação de variáveis e constantes?
1.5.1 Declaração de variáveis
Para utilizar variáveis ao longo de um algoritmo VisuALG, é necessário
que você as declare logo no início do programa, como no exemplo abaixo:
Figura 6 - Exemplo 1, painel de edição e monitoramento do pseudocódigo em execução . Fonte: o
autor.
Perceba que as variáveis X, Y e Z foram declaradas como do tipo
numérico e real. Já a variável CARRO foi declarada como alfanumérica,
que, no caso do VisuALG, deve ser descrita como do tipo “caractere”.
Para executar este algoritmo e testar o comportamento dessas variáveis,
basta teclar <F9>, ou <F8> para executar o algoritmo passo a passo
(linha a linha).
Ao executar o algoritmo do começo ao fim você deverá visualizar o
seguinte quadro de variáveis, como mostra a figura a seguir.
Lógica de Programação| Izabelly Morais e Max Azevedo | 21
Figura 7 - Exemplo 1, painel de monitoramento das variáveis declaradas. Fonte: o autor.
Observe ainda que, ao executar este código, o VisuALG simula o que o
usuário veria na telinha de seu computador. Como o algoritmo não
possuía nenhum comando de exibição de dados em tela, nada foi exibido,
exceto as mensagens de início e término do algoritmo, como mostram os
dois painéis de visualização de resultados, ilustrados nas figuras a seguir.
Figura 8 - Exemplo 1, áreade visualização de resultados do VisuALG. Fonte: o autor.
Além do painel de visualização de resultados, o VisuALG ainda
disponibiliza um simulador de console em interface textual, como em
uma telinha emulada do sistema operacional MS-DOS. Veja o resultado
deste último algoritmo representado neste simulador:
Lógica de Programação| Izabelly Morais e Max Azevedo | 22
Figura 9 - Exemplo 1, simulador do console do MS-DOS mostrando os mesmos resultados em tela.
Fonte: o autor.
Lógica de Programação| Izabelly Morais e Max Azevedo | 23
Considerações Finais
SAIBA MAIS:
Quer se aprofundar no tema desta aula? Recomendamos o acesso à
seguinte fonte de consulta e aprofundamento: Vídeo: “Lógica de
Programação com VisualG - Introdução - 01”, acessível pelo link
https://youtu.be/3nimGaFRLwI (Acesso em 18/10/2017).
Atividades de Autoaprendizagem
ATIVIDADES:
Pronto para consolidar seus conhecimentos? Leia atentamente o
enunciado de sua atividade de autoaprendizagem proposta para esta
aula. Se você está fazendo o seu curso presencialmente, é só abrir o
seu caderno de atividades. Se você estiver cursando na modalidade de
EAD (Educação a Distância), acesse a sua trilha de aprendizagem no seu
ambiente virtual e realize a atividade de modo online. Você pode
desenvolver esta atividade sozinho ou em parceria com seus colegas de
turma. Dificuldades? Poste suas dúvidas no fórum de discussões em seu
ambiente virtual de aprendizagem. Concluiu a sua atividade? Submeta o
resultado em uma postagem diretamente em seu ambiente virtual de
aprendizagem e boa sorte!
Questionário Avaliativo
TESTANDO:
Chegou a hora de você provar que aprendeu tudo o que foi abordado ao
longo desta aula. Para isto, leia e resolva atentamente as questões do
seu caderno de atividades. Se você estiver fazendo este curso a
distância, acesse o QUIZ (Banco de Questões) em seu ambiente virtual
de aprendizagem.
https://youtu.be/3nimGaFRLwI
Lógica de Programação| Izabelly Morais e Max Azevedo | 24
Bibliografia
FORBELLONE, A. L. (2005). Lógica de programação: a construção de algoritmos e
estrutura de dados. São Paulo: Pearson.
MANZANO, J. A., & OLIVEIRA, J. F. (2008). Algoritmos - Lógica para
desenvolvimento de programação de computadores (21. ed.). São Paulo:
Érica.
SEBESTA, R. W. (2011). Conceitos de linguagens de programação. São Paulo:
Bookman.
Lógica de Programação| Izabelly Morais e Max Azevedo | 25
Grupo SER Educacional | Lógica de Programação 1
LÓGICA DE PROGRAMAÇÃO
Lógica de Programação
IZABELLY MORAIS E MAX AZEVEDO
OPERAÇÕES E
EXPRESSÕES
ARITMÉTICAS
AULA 06
Diretor Executivo
DAVID LIRA STEPHEN BARROS
Direção Editorial
ANDRÉA CÉSAR PEDROSA
Projeto Gráfico
MANUELA CÉSAR DE ARRUDA
Autor
IZABELLY MORAIS E MAX AZEVEDO
Desenvolvedor
CAIO BENTO GOMES DOS SANTOS
O Autor
Izabelly Morais de Morais
Olá. Meu nome é Izabelly Morais. Sou licenciada em Ciência da
Computação pela Universidade Federal da Paraíba (UFPB), e mestre em
Ciência da Computação com ênfase em Engenharia de Software e
Linguagens de Programação pela Universidade Federal de Pernambuco
(UFPE). Leciono como professora formadora no Instituto Federal de
Pernambuco (IFPE) e na Faculdade Pitágoras (João Pessoa/PB), onde
tenho a oportunidade de transmitir minha experiência na área de
tecnologia e educação.
Max André de Azevêdo Silva
Olá. Meu nome é Max Azevêdo Silva. Sou formado em Licenciatura em
Ciência da Computação, pela Universidade Federal da Paraíba, e
mestrando em Ciência da Computação com ênfase em Engenharia de
Software pela Universidade Federal da Paraíba. Possuo experiência na
área de desenvolvimento de sistemas web, mobile e jogos eletrônicos.
Atualmente atuo como Analista de Sistemas.
A possibilidade de expor nossos conhecimentos adquiridos ao longo dos
anos é fantástica! Por isso fomos convidados pela Editora Telesapiens a
integrar seu elenco de autores independentes. Estamos muito felizes em
poder ajudar você nesta fase de muito estudo e trabalho. Conte conosco!
IZABELLY MORAIS E MAX AZEVEDO
“
Iconográficos
Olá. Meu nome é Manuela César de Arruda. Sou o responsável pelo
projeto gráfico de seu material. Esses ícones irão aparecer em sua trilha
de aprendizagem toda vez que:
INTRODUÇÃO
para o início do
desenvolvimento de
uma nova
competência;
DEFINIÇÃO
houver necessidade de
se apresentar um novo
conceito;
NOTA
quando forem
necessários
observações ou
complementações
para o seu
conhecimento;
IMPORTANTE
as observações
escritas tiveram
que ser priorizadas
para você;
EXPLICANDO
MELHOR
algo precisa ser
melhor explicado ou
detalhado;
VOCÊ SABIA?
curiosidades e
indagações lúdicas
sobre o tema em
estudo, se forem
necessárias;
SAIBA MAIS
textos, referências
bibliográficas e links
para aprofundamento
do seu conhecimento;
REFLITA
se houver a necessidade
de chamar a atenção
sobre algo a ser refletido
ou discutido sobre;
ACESSE
se for preciso acessar
um ou mais sites
para fazer download,
assistir vídeos, ler
textos, ouvir podcast;
RESUMINDO
quando for preciso se
fazer um resumo
acumulativo das
últimas abordagens;
ATIVIDADES
quando alguma
atividade de
autoaprendizagem for
aplicada;
TESTANDO
quando o
desenvolvimento de
uma competência for
concluído e questões
forem explicadas;
Sumário
1 OPERAÇÕES E EXPRESSÕES ARITMÉTICAS ................................................................ 6
1.1 Expressões aritméticas.......................................................................................... 6
1.2 Tipos de expressões aritméticas ............................................................................ 8
1.3 Usando o VisuALG ............................................................................................... 10
Considerações Finais ................................................................................................ 13
Atividades de Autoaprendizagem .............................................................................. 13
Questionário Avaliativo ............................................................................................ 13
Bibliografia .............................................................................................................. 14
Lógica de Programação| Izabelly Morais e Max Azevedo | 6
1 Operações e expressões aritméticas
INTRODUÇÃO:
Lógica de programação é uma matéria comumente associada à
matemática. Isto é um dos motivos pelos quais certas pessoas com pouca
habilidade em matemática se afastam ou criam alguma resistência ao
aprendizado desta disciplina. No entanto, lógica de programação vai
muito além de se fazer contas de matemática. Ela tem mais a ver com a
capacidade de abstração do que com a aritmética pura e simplesmente.
Por isto, vamos introduzir a matemática em nossos estudos na medida
certa para resolvermos as questões mais básicas possíveis. Estamos
falando das quatro operações: soma, subtração, multiplicação e divisão,
além da potenciação e outras poucas funções matemáticas, para as quais
já revelaremos a fórmula certa para a sua aplicação nos exercícios e
atividadesde programação. Mais importante do que a matemática em si ,
será sabermos empregar os operadores certos nas variáveis certas, para
resolvermos os problemas que nos serão apresentados.
1.1 Expressões aritméticas
Chamamos de expressão aritmética a operação matemática que envolve
dois ou mais operandos, podendo ser constantes e/ou variáveis.
Vejamos então três exemplos de expressões matemáticas:
A (B + C / D)^2 + 140*B
N M*3 + N*2 - 1
X (X/Y + 1)^2
OBJETIVO:
Ao término desta aula você será capaz de utilizar expressões aritméticas
envolvendo constantes e variáveis numéricas em soluções algorítmicas .
Lógica de Programação| Izabelly Morais e Max Azevedo | 7
Note que, em algumas expressões, foram utilizados parênteses. Esses
elementos são normalmente utilizados para priorizar uma operação em
detrimento de outras dentro de uma mesma expressão.
Por exemplo: (B+C/D)^2+140*B resultaria em um dado completamente
diferente não fossem os parênteses, como mostra a simulação a seguir:
Imagine que B=1, C=4 e D=2. Mantendo-se os parênteses do primeiro
exemplo dado anteriormente, teremos o seguinte desenvolvimento dessa
expressão:
A (1 + 4 / 2)^2 + 140*1
A (3)^2 + 140
A 9 + 140
A 149
Mas, como seria o resultado desta expressão se tirássemos os
parênteses?
A B + C / D^2 + 140*B
A 1 + 4 / 2^2 + 140*1
A 1 + 4 / 4 + 140
A 1 + 1 + 140
A 142
Com estas duas simulações, acabamos de recordar algo que aprendemos
lá atrás, no ensino fundamental: a prioridade entre as operações. Em
outras palavras, em uma expressão envolvendo as quatro operações
aritméticas, teremos sempre as seguintes prioridades:
Operação Operador Prioridade
Adição + 3
Subtração - 3
Multiplicação * 2
Divisão / 2
Exponenciação ^ 1
Tabela 1: Ordem de prioridade das operações aritméticas em uma expressão. Fonte: o autor.
Lógica de Programação| Izabelly Morais e Max Azevedo | 8
1.2 Tipos de expressões aritméticas
Assim como as constantes e variáveis numéricas, as expressões
aritméticas também podem ser classificadas em vários dois tipos
distintos:
Inteiras; e
Reais.
O tipo de uma expressão é dado pelo tipo do dado numérico resultante de
sua execução. Por exemplo: se uma expressão tem como resultado um
número inteiro, ela será inteira. Do contrário, teremos uma expressão do
tipo real (ou fracionário).
Para que uma expressão seja inteira, todos os seus
operandos devem ser inteiros. Se pelo menos um desses
operandos for uma constante ou variável do tipo real, a
expressão será real.
IMPORTANTE
Para comprovarmos o que acabamos de enunciar,
imagine a seguinte expressão:
R 10 + 100 + 399 + 4.059 + 1,5
R 4.569,5
Observe que, bastou somarmos o número 1,5 aos demais
operandos para obtermos um resultado fracionário.
EXPLICANDO MELHOR
Lógica de Programação| Izabelly Morais e Max Azevedo | 9
Mas, será que esse papo de expressão aritmética tem alguma utilidade
na hora de programarmos um computador?
Não tenha dúvida que sim! Imagine que você precise criar um algoritmo
que receba um valor salarial de alguém e apresente este salário
acrescido de um aumento de 50%. Veja a solução encontrada por um
programador para este problema:
ALGORITMO
LEIA SALARIO
NOVOSAL SALARIO + SALARIO * 0,5
ESCREVA NOVOSAL
FIM_ALGORITMO
Exemplo 1 – Algoritmo
Perceba que o algoritmo recebeu um salário digitado por um usuário
qualquer, dentro de uma variável denominada SALARIO.
Em seguida, o programador atribuiu uma expressão matemática sobre à
própria variável SALARIO, modificando o seu valor para o correspondente
ao seu valor antigo, mais o percentual de 50% aplicado sobre ele mesmo.
Este percentual de 50% foi expresso na operação: SALARIO * 0,5.
O valor 0,5 corresponde a 50 / 100, ou seja, cinquenta por cento. Porém,
com um pouco mais de conhecimento sobre aritmética, este programador
poderia ter simplificado esta expressão, da seguinte maneira:
ALGORITMO
LEIA SALARIO
NOVOSAL SALARIO * 1,5
ESCREVA NOVOSAL
FIM_ALGORITMO
Exemplo 2 - Algoritmo
Note que alguma coisa mais a metade dela própria é o mesmo que
multiplicá-la por uma vez e meia, logo, as duas expressões apresentadas
como solução algorítmica do problema proposto resultam no mesmo
valor.
Lógica de Programação| Izabelly Morais e Max Azevedo | 10
Vamos sofisticar ainda mais nosso algoritmo? E se, além do salário, ele
permitisse que o usuário fornecesse o percentual de aumento a ser
aplicado?
Teríamos então o seguinte algoritmo, por exemplo:
ALGORITMO
LEIA SALARIO
LEIA PERCENTUAL
NOVOSAL SALARIO * (1 + PERCENTUAL)
ESCREVA NOVOSAL
FIM_ALGORITMO
Exemplo 3 - Algoritmo
1.3 Usando o VisuALG
Vamos utilizar o VisuALG para simular esse último exemplo? Então vamos
declarar as variáveis SALARIO, PERCENTUAL e NOVOSAL como sendo
numéricas e inteiras. Agora, observe as três últimas soluções
algoritmizadas no VisuALG, através das três próximas ilustrações,
respectivamente.
Figura 1 - Exemplo 1. Fonte: o autor.
Lógica de Programação| Izabelly Morais e Max Azevedo | 11
Figura 2 - Digitação do dado da variável: SALARIO, e a exibição do conteúdo da variável NOVOSAL
Figura 3 - Exemplo 2. Fonte: o autor.
Figura 4 - Digitação do dado da variável: SALARIO, e a exibição do conteúdo da variável NOVOSAL
Figura 5 - Exemplo 3. Fonte: o autor.
Lógica de Programação| Izabelly Morais e Max Azevedo | 12
Figura 6 - Digitação dos dados das duas variáveis: SALARIO e PERCENTUAL , e a exibição de NOVOSAL.
Lógica de Programação| Izabelly Morais e Max Azevedo | 13
Considerações Finais
SAIBA MAIS:
Quer se aprofundar em algum dos temas desta aula?
Recomendamos o acesso ao menu “Help” do próprio VisuALG, onde
você poderá encontrar as referências:
Atividades de Autoaprendizagem
ATIVIDADES:
Pronto para consolidar seus conhecimentos? Leia atentamente o
enunciado de sua atividade de autoaprendizagem proposta para esta
aula. Se você está fazendo o seu curso presencialmente, é só abrir o
seu caderno de atividades. Se você estiver cursando na modalidade de
EAD (Educação a Distância), acesse a sua trilha de aprendizagem no seu
ambiente virtual e realize a atividade de modo online. Você pode
desenvolver esta atividade sozinho ou em parceria com seus colegas de
turma. Dificuldades? Poste suas dúvidas no fórum de discussões em seu
ambiente virtual de aprendizagem. Concluiu a sua atividade? Submeta o
resultado em uma postagem diretamente em seu ambiente virtual de
aprendizagem e boa sorte!
Questionário Avaliativo
TESTANDO:
Chegou a hora de você provar que aprendeu tudo o que foi abordado ao
longo desta aula. Para isto, leia e resolva atentamente as questões do
seu caderno de atividades. Se você estiver fazendo este curso a
distância, acesse o QUIZ (Banco de Questões) em seu ambiente virtual
de aprendizagem.
Figura 7 - Menu principal do VisuALG, destacando o submenu "Help".
Lógica de Programação| Izabelly Morais e Max Azevedo | 14
Bibliografia
FORBELLONE, A. L. (2005). Lógica de programação: a construção de algoritmos e
estrutura de dados. São Paulo: Pearson.
MANZANO, J. A., & OLIVEIRA, J. F. (2016). Algoritmos: Lógica para desenvolvimentode programação de computadores (28. ed.). São Paulo: Érica.
Lógica de Programação| Izabelly Morais e Max Azevedo | 15
Grupo SER Educacional | Lógica de Programação 1
LÓGICA DE PROGRAMAÇÃO
Lógica de Programação
IZABELLY MORAIS E MAX AZEVEDO
OPERAÇÕES E
EXPRESSÕES
ALFANUMÉRICAS
AULA 07
Diretor Executivo
DAVID LIRA STEPHEN BARROS
Direção Editorial
ANDRÉA CÉSAR PEDROSA
Projeto Gráfico
MANUELA CÉSAR DE ARRUDA
Autor
IZABELLY MORAIS E MAX AZEVEDO
Desenvolvedor
CAIO BENTO GOMES DOS SANTOS
O Autor
Izabelly Morais de Morais
Olá. Meu nome é Izabelly Morais. Sou licenciada em Ciência da
Computação pela Universidade Federal da Paraíba (UFPB), e mestre em
Ciência da Computação com ênfase em Engenharia de Software e
Linguagens de Programação pela Universidade Federal de Pernambuco
(UFPE). Leciono como professora formadora no Instituto Federal de
Pernambuco (IFPE) e na Faculdade Pitágoras (João Pessoa/PB), onde
tenho a oportunidade de transmitir minha experiência na área de
tecnologia e educação.
Max André de Azevêdo Silva
Olá. Meu nome é Max Azevêdo Silva. Sou formado em Licenciatura em
Ciência da Computação, pela Universidade Federal da Paraíba, e
mestrando em Ciência da Computação com ênfase em Engenharia de
Software pela Universidade Federal da Paraíba. Possuo experiência na
área de desenvolvimento de sistemas web, mobile e jogos eletrônicos.
Atualmente atuo como Analista de Sistemas.
A possibilidade de expor nossos conhecimentos adquiridos ao longo dos
anos é fantástica! Por isso fomos convidados pela Editora Telesapiens a
integrar seu elenco de autores independentes. Estamos muito felizes em
poder ajudar você nesta fase de muito estudo e trabalho. Conte conosco!
IZABELLY MORAIS E MAX AZEVEDO
“
Iconográficos
Olá. Meu nome é Manuela César de Arruda. Sou o responsável pelo
projeto gráfico de seu material. Esses ícones irão aparecer em sua trilha
de aprendizagem toda vez que:
INTRODUÇÃO
para o início do
desenvolvimento de
uma nova
competência;
DEFINIÇÃO
houver necessidade de
se apresentar um novo
conceito;
NOTA
quando forem
necessários
observações ou
complementações
para o seu
conhecimento;
IMPORTANTE
as observações
escritas tiveram
que ser priorizadas
para você;
EXPLICANDO
MELHOR
algo precisa ser
melhor explicado ou
detalhado;
VOCÊ SABIA?
curiosidades e
indagações lúdicas
sobre o tema em
estudo, se forem
necessárias;
SAIBA MAIS
textos, referências
bibliográficas e links
para aprofundamento
do seu conhecimento;
REFLITA
se houver a necessidade
de chamar a atenção
sobre algo a ser refletido
ou discutido sobre;
ACESSE
se for preciso acessar
um ou mais sites
para fazer download,
assistir vídeos, ler
textos, ouvir podcast;
RESUMINDO
quando for preciso se
fazer um resumo
acumulativo das
últimas abordagens;
ATIVIDADES
quando alguma
atividade de
autoaprendizagem for
aplicada;
TESTANDO
quando o
desenvolvimento de
uma competência for
concluído e questões
forem explicadas;
Sumário
1 OPERAÇÕES E EXPRESSÕES ALFANUMÉRICAS .......................................................... 6
1.1 Funções ................................................................................................................ 6
1.2 Operações Caractere............................................................................................. 7
1.3 Funções Caractere ................................................................................................ 9
1.3.1 Caracpnum() .......................................................................................... 10
1.3.2 Numpcarac() .......................................................................................... 10
1.3.3 Compr() ................................................................................................. 10
1.3.4 Copia() ................................................................................................... 11
Considerações Finais ................................................................................................ 12
Atividades de Autoaprendizagem .............................................................................. 12
Questionário Avaliativo ............................................................................................ 12
Bibliografia .............................................................................................................. 13
Lógica de Programação| Izabelly Morais e Max Azevedo | 6
1 Operações e expressões alfanuméricas
INTRODUÇÃO:
Como dissemos anteriormente, nem só de matemática vive a lógica de
programação. Na realidade, uma grande variedade de problemas
informacionais envolve operações conhecidas como “string”, ou
alfanuméricas. As cadeias de caracteres estão contidas na maior parte
dos dados que são rotineiramente processados pelos computadores. Ao
longo desta aula iremos aprender algumas operações de varredura e
concatenação dessas cadeias de caracteres, fundamentais na formatação
de exibição e impressão de dados. No entanto, antes de iniciarmos os
estudos sobre essas operações “string”, precisamos conhecer um novo
conceito: o de função. Isto, porque, a maioria das operações envolvendo
variáveis e constantes alfanuméricas são obtidas por meio de funções, e
não por operações pura e simplesmente.
1.1 Funções
Você sabe o que vem a ser uma função? Muitas vezes, quando desejamos
submeter uma variável ou uma constante a um processamento, nem
sempre encontramos um operador que resolva o problema. Por exemplo,
se quisermos somar algo a uma variável, usamos o operador “+”. No
entanto, se quisermos encontrar o valor inteiro correspondente a um
número real, precisamos de uma função chamada INT.
Vejamos como funciona a sintaxe desta função:
X 1,9
N Int ( X )
Escreva N
OBJETIVO:
Ao término desta aula você será capaz de utilizar expressões literais
envolvendo constantes e variáveis alfanuméricas em soluções algorítmicas .
Lógica de Programação| Izabelly Morais e Max Azevedo | 7
Note que essa função funciona como um pequeno algoritmo que recebe
um parâmetro (ou argumento) de outro algoritmo, devolvendo -lhe um
resultado processado daquele argumento.
Uma função pode ser interna ou externa à linguagem de programação.
Funções internas: são aquelas disponibilizadas pela própria linguagem,
assim como suas instruções e semântica como um todo;
Funções externas: são aquelas criadas por programadores e
disponibilizadas para reuso em outros programas.
1.2 Operações Caractere
Ao contrário das operações aritméticas básicas, que são quatro (e mais a
potenciação), as operações caractere se resumem a apenas uma: a
concatenação. As linguagens de programação costumam utilizar dois
operadores para simbolizar uma concatenação:
Função é todo e qualquer algoritmo externo que pode ser
chamado a partir de uma instrução, devolvendo um
resultado processado a partir de um ou mais argumentos
transmitidos pelo algoritmo que a chamou.
DEFINIÇÃO
Estudaremos mais detidamente as funções externas mais
adiante, bem como a forma de cria-las e reutilizá-las em
algoritmos computacionais.
NOTA
Lógica de Programação| Izabelly Morais e Max Azevedo | 8
+ ou &
O VisuALG, por exemplo, utiliza o mesmo operadorda adição (+) para a
concatenação de cadeias de caracteres (variáveis ou constantes).
Por exemplo, se quisermos adicionar o pronome de tratamento “Sr.” a
uma variável que irá receber o nome de uma pessoa do teclado do
computador, teremos o seguinte algoritmo:
ALGORITMO
LEIA NOME
NOME “Sr.” + NOME
ESCREVA NOME
FIM_ALGORITMO
Exemplo 1 – Algoritmo
Vamos testar este algoritmo no VisuALG?
Figura 1 - Exemplo 1. Fonte: o autor.
Para visualizar e compreender melhor o efeito da concatenação
envolvendo a variável NOME, execute este algoritmo passo a passo,
teclando <F8> em vez de <F9>.
PASSO 1: Declaração da variável NOME
Figura 2 - Executando a linha 4 do algoritmo. Fonte: o autor.
PASSO 2: Digitação do dado na variável NOME
Lógica de Programação| Izabelly Morais e Max Azevedo | 9
Figura 3 - Executando a linha 5 do algoritmo. Fonte: o autor.
PASSO 3: Concatenação da constante “Sr.” Com a variável NOME
Figura 4 - Executando a linha 6 do algoritmo. Fonte: o autor.
PASSO 4: Exibição do dado contido na variável NOME
Figura 5 - Executando a linha 7 do algoritmo. Fonte: o autor.
1.3 Funções Caractere
Existem mais de uma dezena de funções do tipo caractere nas linguagens
de programação. Elas têm a função de permitir a manipulação dos dados
no interior de variáveis, ou a combinação desses dados com os de outras
variáveis. Imagine que necessitemos identificar a posição de determinada
letra em um nome, ou mesmo conhecer o comprimento dessa cadeia de
caracteres. Para cada necessidade dessas existe uma função, e mais:
Lógica de Programação| Izabelly Morais e Max Azevedo | 10
1.3.1 Caracpnum()
Caracpnum (PALAVRA): Retorna o número inteiro ou real equivalente à
cadeia de caracteres ou expressão alfanumérica informada como
argumento da função, no caso, PALAVRA. Analise o exemplo a seguir:
Var
PALAVRA: caractere
RESUTADO: inteiro
PALAVRA “1000”
RESULTADO Caracpnum(PALAVRA) + 2000
ESCREVA RESULTADO
No exemplo acima o valor numérico da variável RESULTADO será 3000.
Se não fosse a função Caracpnum() não haveria como somar a string
NUMERO com o número 2000.
1.3.2 Numpcarac()
Numpcarac (NUMERO): Retorna uma cadeia de caracteres contendo a
representação alfanumérica de NUMERO. Esta função faz exatamente o
contrário da Caracpnum(), ou seja, converte um NUMERO em uma String.
Var
NUMERO: inteiro
RESUTADO: caractere
NUMERO 1000
RESULTADO Numpcarac(NUMERO) + “ reais”
ESCREVA RESULTADO
No exemplo acima a cadeia de caracteres gerada na variável RESULTADO
será “1000 reais”. Se não fosse a função Numpcarac() não haveria como
concatenar o número contido na variável NUMERO com a constante “
reais”.
1.3.3 Compr()
Compr(FRASE): Retorna um valor numérico inteiro correspondente ao
tamanho da variável, constante ou expressão FRASE. Em outras palavras,
essa função serve para contar quantos caracteres existem na expressão,
constante ou variável passada como argumento da função. Por exemplo:
Lógica de Programação| Izabelly Morais e Max Azevedo | 11
Var
FRASE: caractere
RESUTADO: inteiro
FRASE “Há mais brilhos em nossos olhos que estrelas no céu”
RESULTADO Compr(FRASE)
ESCREVA RESULTADO
No exemplo acima o valor gerado na variável RESULTADO será 51, ou
seja, existirão 51 caracteres dentro da variável RESULTADO após a
execução deste algoritmo.
1.3.4 Copia()
Copia(FRASE, INICIO, TAMANHO): Retorna uma cadeia de caracteres
contendo uma cópia parcial de FRASE, a partir do caractere situado na
posição INICIO, contendo TAMANHO caracteres a partir daquela posição.
Os caracteres são numerados da esquerda para a direita, começando de
1.
Var
FRASE: caractere
RESUTADO: caractere
FRASE “Há mais brilhos em nossos olhos que estrelas no céu”
RESULTADO Copia(FRASE, 9, 7)
ESCREVA RESULTADO
No exemplo anterior, a cadeia de caracteres gerada na variável
RESULTADO será “brilho” após a execução deste algoritmo.
O tipo de uma expressão é dado pelo tipo do dado numérico resultante de
sua execução. Por exemplo: se uma expressão tem como resultado um
número inteiro, ela será inteira. Do contrário, teremos uma expressão do
tipo real (ou fracionário).
Lógica de Programação| Izabelly Morais e Max Azevedo | 12
Considerações Finais
SAIBA MAIS:
Quer conhecer mais e mais funções internas oferecidas pelo
VisuALG? Acesse a publicação disponível no link:
http://www.apoioinformatica.inf.br/produtos/item/30-as-funcoes-do-
visualg-versao-2-0 (Acesso em 20/10/2017) e conheça várias outras
funções caractere e numéricas.
Atividades de Autoaprendizagem
ATIVIDADES:
Pronto para consolidar seus conhecimentos? Leia atentamente o
enunciado de sua atividade de autoaprendizagem proposta para esta
aula. Se você está fazendo o seu curso presencialmente, é só abrir o
seu caderno de atividades. Se você estiver cursando na modalidade de
EAD (Educação a Distância), acesse a sua trilha de aprendizagem no seu
ambiente virtual e realize a atividade de modo online. Você pode
desenvolver esta atividade sozinho ou em parceria com seus colegas de
turma. Dificuldades? Poste suas dúvidas no fórum de discussões em seu
ambiente virtual de aprendizagem. Concluiu a sua atividade? Submeta o
resultado em uma postagem diretamente em seu ambiente virtual de
aprendizagem e boa sorte!
Questionário Avaliativo
TESTANDO:
Chegou a hora de você provar que aprendeu tudo o que foi abordado ao
longo desta aula. Para isto, leia e resolva atentamente as questões do
seu caderno de atividades. Se você estiver fazendo este curso a
distância, acesse o QUIZ (Banco de Questões) em seu ambiente virtual
de aprendizagem.
http://www.apoioinformatica.inf.br/produtos/item/30-as-funcoes-do-visualg-versao-2-0
http://www.apoioinformatica.inf.br/produtos/item/30-as-funcoes-do-visualg-versao-2-0
Lógica de Programação| Izabelly Morais e Max Azevedo | 13
Bibliografia
Apoio Informática. (20 de Out de 2017). As funções do VisuALG versão 2.0 . Fonte:
Apoio Informática: http://www.apoioinformatica.inf.br/produtos/item/30-as-
funcoes-do-visualg-versao-2-0
RODRIGUES, A. (2016). Manual do VisuAlg. Iguatu: IFCE. Acesso em 20 de Out de
2017, disponível em
www.netsoft.inf.br/aulas/4_ECI_Introducao_a_Informatica/Visualg2_manual
.pdf
Lógica de Programação| Izabelly Morais e Max Azevedo | 14
Grupo SER Educacional | Lógica de Programação 1
LÓGICA DE PROGRAMAÇÃO
Lógica de Programação
IZABELLY MORAIS E MAX AZEVEDO
ESTRUTURAS
CONDICIONAIS
AULA 08
Diretor Executivo
DAVID LIRA STEPHEN BARROS
Direção Editorial
ANDRÉA CÉSAR PEDROSA
Projeto Gráfico
MANUELA CÉSAR DE ARRUDA
Autor
IZABELLY MORAIS E MAX AZEVEDO
Desenvolvedor
CAIO BENTO GOMES DOS SANTOS
O Autor
Izabelly Morais de Morais
Olá. Meu nome é Izabelly Morais. Sou licenciada em Ciência da
Computação pela Universidade Federal da Paraíba (UFPB), e mestre em
Ciência da Computação com ênfase em Engenharia de Software e
Linguagens de Programação pela Universidade Federal de Pernambuco
(UFPE). Leciono como professora formadora no Instituto Federal de
Pernambuco (IFPE) e na Faculdade Pitágoras (João Pessoa/PB), onde
tenho a oportunidade de transmitir minha experiência na área de
tecnologia e educação.
Max André de Azevêdo Silva
Olá. Meu nome é Max AzevêdoSilva. Sou formado em Licenciatura em
Ciência da Computação, pela Universidade Federal da Paraíba, e
mestrando em Ciência da Computação com ênfase em Engenharia de
Software pela Universidade Federal da Paraíba. Possuo experiência na
área de desenvolvimento de sistemas web, mobile e jogos eletrônicos.
Atualmente atuo como Analista de Sistemas.
A possibilidade de expor nossos conhecimentos adquiridos ao longo dos
anos é fantástica! Por isso fomos convidados pela Editora Telesapiens a
integrar seu elenco de autores independentes. Estamos muito felizes em
poder ajudar você nesta fase de muito estudo e trabalho. Conte conosco!
IZABELLY MORAIS E MAX AZEVEDO
“
Iconográficos
Olá. Meu nome é Manuela César de Arruda. Sou o responsável pelo
projeto gráfico de seu material. Esses ícones irão aparecer em sua trilha
de aprendizagem toda vez que:
INTRODUÇÃO
para o início do
desenvolvimento de
uma nova
competência;
DEFINIÇÃO
houver necessidade de
se apresentar um novo
conceito;
NOTA
quando forem
necessários
observações ou
complementações
para o seu
conhecimento;
IMPORTANTE
as observações
escritas tiveram
que ser priorizadas
para você;
EXPLICANDO
MELHOR
algo precisa ser
melhor explicado ou
detalhado;
VOCÊ SABIA?
curiosidades e
indagações lúdicas
sobre o tema em
estudo, se forem
necessárias;
SAIBA MAIS
textos, referências
bibliográficas e links
para aprofundamento
do seu conhecimento;
REFLITA
se houver a necessidade
de chamar a atenção
sobre algo a ser refletido
ou discutido sobre;
ACESSE
se for preciso acessar
um ou mais sites
para fazer download,
assistir vídeos, ler
textos, ouvir podcast;
RESUMINDO
quando for preciso se
fazer um resumo
acumulativo das
últimas abordagens;
ATIVIDADES
quando alguma
atividade de
autoaprendizagem for
aplicada;
TESTANDO
quando o
desenvolvimento de
uma competência for
concluído e questões
forem explicadas;
Sumário
1 ESTRUTURAS CONDICIONAIS SE .............................................................................. 6
1.1 Operações Condicionais ........................................................................................ 6
1.1.1 Operadores relacionais ............................................................................. 7
1.1.2 Operadores lógicos ................................................................................... 8
Considerações Finais ................................................................................................ 10
Atividades de Autoaprendizagem .............................................................................. 10
Questionário Avaliativo ............................................................................................ 10
Bibliografia .............................................................................................................. 11
Lógica de Programação| Izabelly Morais e Max Azevedo | 6
1 Estruturas Condicionais SE
INTRODUÇÃO:
Agora que já sabemos como manipular variáveis de memória, quer sejam
numéricas ou caracteres, precisamos entender como se comportam as
variáveis lógicas e suas expressões condicionais. Entender bem isto é
preponderante para a programação de soluções computacionais, pois
tomar decisões é algo que todo programador estará sempre fazendo ao
longo da codificação de seus programas.
1.1 Operações Condicionais
Você sabe o que vem a ser uma operação condicional? Assim como uma
operação aritmética submete seus operandos numéricos a um
processamento matemático, por meio de operadores, o mesmo ocorrendo
com as operações “string”, as operações condicionais se comportam mais
ou menos da mesma forma. A diferença é que o resultado de uma
operação condicional é sempre verdadeiro ou falso. Outra diferença
conceitual entre a operação condicional e as demais está nas instruções
que as suportam. Normalmente, uma operação aritmética é utilizada em
uma instrução de atribuição, ou seja, o resultado de uma expressão
matemática é geralmente atribuído à uma variável de memória, ou ainda
pode ser utilizada diretamente em uma instrução de saída, como no
comando ESCREVA, por exemplo. Uma operação condicional também
pode ser atribuída à uma variável, porém, o mais comum, é que elas
sejam utilizadas em comandos ou estruturas condicionais, como o
comando SE, por exemplo.
OBJETIVO:
Ao término desta aula você será capaz de aplicar estruturas condicionais
SE em soluções algorítmicas.
Lógica de Programação| Izabelly Morais e Max Azevedo | 7
Para compreendermos melhor, imagine se fizéssemos um algoritmo que
lesse dois números inteiros e, independentemente da ordem e m que os
digitássemos, eles sempre fossem mostrados em ordem crescente (do
menor para o maior). Vamos elaborar este algoritmo?
ALGORITMO
VAR
A, B: INTEIRO
LEIA (A, B)
SE A > B ENTÃO
ESCREVA (B, A)
SENÃO
ESCREVA (A, B)
FIMSE
FIMALGORITMO
Note que utilizamos uma estrutura condicional conhecida como SE. Essa
estrutura tem a seguinte sintaxe:
SE <expressão condicional> ENTÃO
<instrução-1>
<instrução-2>
...
<instrução-N>
SENÃO
<instrução-3>
<instrução-4>
...
<instrução-M>
FIMSE
No caso do exemplo anteriormente ilustrado, a <expressão
condicional> utilizada foi “A < B”. ou seja, tivemos uma
operação que submeteu duas variáveis a um operador
relacional, no caso, o operador “>”.
1.1.1 Operadores relacionais
Chamamos de operadores relacionais aqueles que comparam o valor de
dois operandos, que podem ser expressões aritméticas ou caractere,
como duas variáveis entre si, uma constante com variável, ou vice-versa.
Condição
Instruçã
o 1
Instruçã
o 2
Instruçã
o N
Instruçã
o 3
Instruçã
o 4
Instruçã
o M
ENTÃ
O
SENÃ
O
Figura 1 - Fluxograma da estrutura
SE. Fonte: o autor.
Lógica de Programação| Izabelly Morais e Max Azevedo | 8
São esses os operadores que podem ser usados em estruturas SE, entre
outras:
Operador Significado Exemplo de operação
> Maior que A > B
< Menor que A < B
>= Maior ou igual a A >= B
<= Menor ou igual a A <= B
= Igual a A = B
<> Diferente de A <> B
Tabela 1: Operadores relacionais. Fonte: o autor.
1.1.2 Operadores lógicos
Chamamos de operadores lógicos aqueles que atuam sobre expressões
condicionais, conectando-as ou invertendo seus sinais.
Operador Significado Exemplo É o mesmo que...
NÃO Negação NÃO A > B A <= B
OU Disjunção A < B OU B >
C
Verdadeiro se quaisquer das expressões
forem verdadeiras, inclusive ambas
E Conjunção A < B E B > C Verdadeiro somente se ambas as
expressões forem verdadeiras
XOU Exclusão A < B XOU B >
C
Verdadeiro se qualquer uma for verdadeira,
mas falsa se ambas forem verdadeiras
Tabela 2: Operadores lógicos. Fonte: o autor.
Vamos ver como ficaria o algoritmo-exemplo no
interpretador do VisuALG?
RESUMINDO
Lógica de Programação| Izabelly Morais e Max Azevedo | 9
Figura 2 - Algoritmo exemplo 1: Colocar dois números em ordem crescente.
Lógica de Programação| Izabelly Morais e Max Azevedo | 10
Considerações Finais
SAIBA MAIS:
Quer conhecer mais e mais operadores oferecidos pelo VisuALG?
Acesse a publicação disponível no link:
http://www.apoioinformatica.inf.br/produtos/item/09-operadores
(Acesso em 21/10/2017) e conheça vários outros operadores.Atividades de Autoaprendizagem
ATIVIDADES:
Pronto para consolidar seus conhecimentos? Leia atentamente o
enunciado de sua atividade de autoaprendizagem proposta para esta
aula. Se você está fazendo o seu curso presencialmente, é só abrir o
seu caderno de atividades. Se você estiver cursando na modalidade de
EAD (Educação a Distância), acesse a sua trilha de aprendizagem no seu
ambiente virtual e realize a atividade de modo online. Você pode
desenvolver esta atividade sozinho ou em parceria com seus colegas de
turma. Dificuldades? Poste suas dúvidas no fórum de discussões em seu
ambiente virtual de aprendizagem. Concluiu a sua atividade? Submeta o
resultado em uma postagem diretamente em seu ambiente virtual de
aprendizagem e boa sorte!
Questionário Avaliativo
TESTANDO:
Chegou a hora de você provar que aprendeu tudo o que foi abordado ao
longo desta aula. Para isto, leia e resolva atentamente as questões do
seu caderno de atividades. Se você estiver fazendo este curso a
distância, acesse o QUIZ (Banco de Questões) em seu ambiente virtual
de aprendizagem.
http://www.apoioinformatica.inf.br/produtos/item/09-operadores
Lógica de Programação| Izabelly Morais e Max Azevedo | 11
Bibliografia
Apoio Informática. (20 de Out de 2017). As funções do VisuALG versão 2.0 . Fonte:
Apoio Informática: http://www.apoioinformatica.inf.br/produtos/item/30-as-
funcoes-do-visualg-versao-2-0
Lógica de Programação| Izabelly Morais e Max Azevedo | 12
Grupo SER Educacional | Lógica de Programação 1
LÓGICA DE PROGRAMAÇÃO
Lógica de Programação
IZABELLY MORAIS E MAX AZEVEDO
ESTRUTURAS
CONDICIONAIS SE
ENCADEADAS
AULA 09
Diretor Executivo
DAVID LIRA STEPHEN BARROS
Direção Editorial
ANDRÉA CÉSAR PEDROSA
Projeto Gráfico
MANUELA CÉSAR DE ARRUDA
Autor
IZABELLY MORAIS E MAX AZEVEDO
Desenvolvedor
CAIO BENTO GOMES DOS SANTOS
O Autor
Izabelly Morais de Morais
Olá. Meu nome é Izabelly Morais. Sou licenciada em Ciência da
Computação pela Universidade Federal da Paraíba (UFPB), e mestre em
Ciência da Computação com ênfase em Engenharia de Software e
Linguagens de Programação pela Universidade Federal de Pernambuco
(UFPE). Leciono como professora formadora no Instituto Federal de
Pernambuco (IFPE) e na Faculdade Pitágoras (João Pessoa/PB), onde
tenho a oportunidade de transmitir minha experiência na área de
tecnologia e educação.
Max André de Azevêdo Silva
Olá. Meu nome é Max Azevêdo Silva. Sou formado em Licenciatura em
Ciência da Computação, pela Universidade Federal da Paraíba, e
mestrando em Ciência da Computação com ênfase em Engenharia de
Software pela Universidade Federal da Paraíba. Possuo experiência na
área de desenvolvimento de sistemas web, mobile e jogos eletrônicos.
Atualmente atuo como Analista de Sistemas.
A possibilidade de expor nossos conhecimentos adquiridos ao longo dos
anos é fantástica! Por isso fomos convidados pela Editora Telesapiens a
integrar seu elenco de autores independentes. Estamos muito felizes em
poder ajudar você nesta fase de muito estudo e trabalho. Conte conosco!
IZABELLY MORAIS E MAX AZEVEDO
“
Iconográficos
Olá. Meu nome é Manuela César de Arruda. Sou o responsável pelo
projeto gráfico de seu material. Esses ícones irão aparecer em sua trilha
de aprendizagem toda vez que:
INTRODUÇÃO
para o início do
desenvolvimento de
uma nova
competência;
DEFINIÇÃO
houver necessidade de
se apresentar um novo
conceito;
NOTA
quando forem
necessários
observações ou
complementações
para o seu
conhecimento;
IMPORTANTE
as observações
escritas tiveram
que ser priorizadas
para você;
EXPLICANDO
MELHOR
algo precisa ser
melhor explicado ou
detalhado;
VOCÊ SABIA?
curiosidades e
indagações lúdicas
sobre o tema em
estudo, se forem
necessárias;
SAIBA MAIS
textos, referências
bibliográficas e links
para aprofundamento
do seu conhecimento;
REFLITA
se houver a necessidade
de chamar a atenção
sobre algo a ser refletido
ou discutido sobre;
ACESSE
se for preciso acessar
um ou mais sites
para fazer download,
assistir vídeos, ler
textos, ouvir podcast;
RESUMINDO
quando for preciso se
fazer um resumo
acumulativo das
últimas abordagens;
ATIVIDADES
quando alguma
atividade de
autoaprendizagem for
aplicada;
TESTANDO
quando o
desenvolvimento de
uma competência for
concluído e questões
forem explicadas;
Sumário
1 ESTRUTURAS CONDICIONAIS SE ENCADEADAS ......................................................... 8
1.1 Estruturas Condicionais SE Encadeadas ................................................................. 8
Considerações Finais ................................................................................................ 13
Atividades de Autoaprendizagem .............................................................................. 13
Questionário Avaliativo ............................................................................................ 13
Bibliografia .............................................................................................................. 24
Trilha de Aprendizagem
Olá. Meu nome é Andréa César. Sou responsável pela direção editorial
deste livro didático e de todos os demais recursos relacio nados com a sua
trilha de aprendizagem. Você está iniciando seus estudos sobre LÓGICA
DE PROGRAMAÇÃO, e o nosso objetivo é auxiliar você no desenvolvimento
das competências necessárias ao seu exercício profissional. Para isto,
distribuímos os conteúdos didáticos deste livro em quatro semanas de
estudo, onde, em cada uma delas, haverá uma competência a ser
construída. Cada uma dessas competências será desenvolvida por meio
de quatro atividades de estudo, que podemos chamar de “aulas”. Em
cada aula, você terá uma introdução ao tema abordado, os objetivos a
serem alcançados, uma atividade de autoaprendizagem proposta e uma
lista de exercícios a serem respondidos. Quer saber quais serão as
competências que você irá desenvolver ao longo dessas quatro semanas
de estudo? Então vamos a elas:
Compreender os conceitos fundamentais da ciência da computação, 1.
sobretudo no que concerne a softwares e programação de
computadores.
Desenvolver algoritmos estruturados envolvendo operações com 2.
variáveis e comandos condicionais simples.
Utilizar estruturas condicionais encadeadas e iterativas, além de 3.
efetuar operações envolvendo vetores.
Trabalhar com matrizes e modulação de algoritmos, como 4.
procedimentos e funções.
Ao longo desta semana iremos desenvolver a competência de número: 3.
Vamos arregaçar as mangas? Ao trabalho!
Lógica de Programação| Izabelly Morais e Max Azevedo | 7
3ª SEMANA DE ESTUDOS
INTRODUÇÃO:
que você já aprendeu em temos de algoritmização de
soluções computacionais pode ser considerado como o
básico para a programação de computadores. Ao longo
desta semana avançaremos um pouco mais na
complexidade dos programas, estudando o encadeamento de estruturas
condicionais e as estruturas repetitivas (ou iterativas). No tocante a essas
estruturas repetitivas, introduziremos o conceito de variáveis
unidimensionais lineares, mais popularmente conhecidas como vetores. É
importante destacar que a teoria da lógica de programação será cada vez
menor, pois o grande segredo do aprendizado a partir desta etapa de
estudos está no praticar cada vez mais.
OBJETIVOS:
Ao término desta semana de estudos,você será capaz de:
Aplicar estruturas condicionais encadeadas em soluções de
problemas algorítmicos.
Aplicar estruturas de repetição em soluções algorítmicas envolvendo
contagem e acumulação.
Aplicar estruturas de repetição em soluções algorítmicas envolvendo
cadeias de caracteres e variáveis alfanuméricas.
Entender o conceito e as aplicações de vetores em soluções
algorítmicas.
Mãos à obra? Conte com a gente!
O
Lógica de Programação| Izabelly Morais e Max Azevedo | 8
1 Estruturas Condicionais SE Encadeadas
INTRODUÇÃO:
Vimos que a estrutura condicional SE permite que um bloco de instruções
seja executado apenas quando satisfeitas algumas condições. Quando
não, outras instruções podem ser executadas. Mas essas estruturas
condicionais suportam mais que meras instruções. Você pode inserir
outras estruturas condicionais dentro delas, sem limite de quantidade ou
de níveis hierárquicos. Ao longo desta aula iremos entender a sintaxe
dessas estruturas complexas, assim como exercitar sua aplicação através
de alguns exemplos.
1.1 Estruturas Condicionais SE Encadeadas
Além de instruções, outras estruturas condicionais podem ser inseridas
dentro de uma estrutura SE. Por exemplo, imagine que queiramos
desenvolver uma lógica algorítmica capaz de receber três números
inteiros e exibi-los em ordem crescente, independentemente da ordem
pela qual eles foram digitados no computador.
Apesar de este problema poder ser solucionado de diversas maneiras
diferentes, dificilmente alguém conseguirá resolvê -lo sem que seja
necessário recorrer-se ao encadeamento de estruturas condicionais SE,
como podemos ver no exemplo a seguir.
ALGORITMO
VAR
A, B, C: INTEIRO
LEIA (A, B, C)
SE A < B ENTÃO
SE B < C ENTÃO
ESCREVA (A, B, C)
SENÃO
SE C < A ENTÃO
OBJETIVO:
Ao término desta aula você será capaz de encadear várias estruturas
condicionais SE, de acordo com as necessidades de solução algorítmica.
Lógica de Programação| Izabelly Morais e Max Azevedo | 9
ESCREVA (C, A, B)
SENÃO
ESCREVA (A, C, B)
FIMSE
FIMSE
SENÃO
SE A < C ENTÃO
ESCREVA (B, A, C)
SENÃO
SE C < B ENTÃO
ESCREVA (C, B, A)
SENÃO
ESCREVA (B, C, A)
FIMSE
FIMSE
FIMSE
FIMALGORITMO
Note que conseguimos inserir cinco estruturas condicionais SE
encadeadas em três níveis hierárquicos.
Em cada uma dessas estruturas tivemos a oportunidade de inserir
instruções tanto na cláusula ENTÃO quanto na SENÃO.
Para compreendermos melhor a solução dada anteriormente, vamos
representar o algoritmo visualmente por meio de diagramas de bloco (ou
fluxograma).
Desse modo fica mais fácil percorrer as várias situações e decisões que
serão tomadas pelo programa em tempo de execução.
É imprescindível utilizar o método da endentação do texto
para você não se perder quanto aos fechamentos das
estruturas encadeadas. Para cada SE tem que haver um
FIMSE, e convém que estes FIMSEs se posicionem na
mesma margem dos seus respectivos SEs.
IMPORTANTE
Lógica de Programação| Izabelly Morais e Max Azevedo | 10
Figura 1 - Versão do algoritmo-exemplo em diagrama de blocos. Fonte: o autor.
E, finalmente, vamos testar o nosso algoritmo? Para isto, podemos agir
de duas maneiras distintas: ou testamos a lógica desenvolvida
visualmente, realizando o que chamamos de teste de mesa (também
A < B
SENÃ
O
ENTÃ
O
Leia A, B,
C
B < C Escreva A,
B, C
SENÃ
O
ENTÃ
O
C < A
Escreva C,
A, B
ENTÃ
O
Escreva A,
C, B
SENÃ
O
A < C Escreva B,
A, C
SENÃ
O
C < B
Escreva B,
C, A
SENÃ
O
Escreva C,
B, A
ENTÃ
O
ENTÃ
O
INÍCIO
FIM
FIMSE FIMSE FIMS
Es
FIMS
Es
FIMS
Es
Perceba que a quantidade de conectores (círculos) que
aparecem na figura acima é exatamente igual à
quantidade de FIMSEs redigidos no algoritmo escrito
anteriormente.
NOTA
Lógica de Programação| Izabelly Morais e Max Azevedo | 11
conhecido como “chinês”), ou digitamos o código do algoritmo no editor
do VisuALG e executamos o programa, fazendo, claro, as devidas
adequações quanto à sintaxe das instruções e da estrutura condicional
SE.
Figura 2 - Algoritmo exemplo 2: Colocar três números em ordem crescente.
Vamos ver como ficaria o algoritmo-exemplo no
interpretador do VisuALG?
RESUMINDO
Lógica de Programação| Izabelly Morais e Max Azevedo | 12
Figura 3 - Resultado de execução do algoritmo na console do computador. Fonte: o autor.
Lógica de Programação| Izabelly Morais e Max Azevedo | 13
Considerações Finais
SAIBA MAIS:
Quer se aprofundar no tema desta aula? Recomendamos o acesso a
alguns exercícios de algoritmização resolvidos, como os da página :
“VISUALG: Exercícios SE, SENAO”, acessível pelo link
https://goo.gl/WdaJi1 (Acesso em 22/10/2017).
Atividades de Autoaprendizagem
ATIVIDADES:
Pronto para consolidar seus conhecimentos? Leia atentamente o
enunciado de sua atividade de autoaprendizagem proposta para esta
aula. Se você está fazendo o seu curso presencialmente, é só abrir o
seu caderno de atividades. Se você estiver cursando na modalidade de
EAD (Educação a Distância), acesse a sua trilha de aprendizagem no seu
ambiente virtual e realize a atividade de modo online. Você pode
desenvolver esta atividade sozinho ou em parceria com seus colegas de
turma. Dificuldades? Poste suas dúvidas no fórum de discussões em seu
ambiente virtual de aprendizagem. Concluiu a sua atividade? Submeta o
resultado em uma postagem diretamente em seu ambiente virtual de
aprendizagem e boa sorte!
Questionário Avaliativo
TESTANDO:
Chegou a hora de você provar que aprendeu tudo o que foi abordado ao
longo desta aula. Para isto, leia e resolva atentamente as questões do
seu caderno de atividades. Se você estiver fazendo este curso a
distância, acesse o QUIZ (Banco de Questões) em seu ambiente virtual
de aprendizagem.
https://goo.gl/WdaJi1
Lógica de Programação| Izabelly Morais e Max Azevedo | 14
Bibliografia
Antigo Programador. (22 de Out de 2017). VISUALG: Exercícios SE, SENAO . Fonte:
Antigo Programador, Blog: https://goo.gl/WdaJi1
Lógica de Programação| Izabelly Morais e Max Azevedo | 15
Grupo SER Educacional | Lógica de Programação 1
LÓGICA DE PROGRAMAÇÃO
Lógica de Programação
IZABELLY MORAIS E MAX AZEVEDO
ESTRUTURAS
REPETITIVAS
AULA 10
Diretor Executivo
DAVID LIRA STEPHEN BARROS
Direção Editorial
ANDRÉA CÉSAR PEDROSA
Projeto Gráfico
MANUELA CÉSAR DE ARRUDA
Autor
IZABELLY MORAIS E MAX AZEVEDO
Desenvolvedor
CAIO BENTO GOMES DOS SANTOS
O Autor
Izabelly Morais de Morais
Olá. Meu nome é Izabelly Morais. Sou licenciada em Ciência da
Computação pela Universidade Federal da Paraíba (UFPB), e mestre em
Ciência da Computação com ênfase em Engenharia de Software e
Linguagens de Programação pela Universidade Federal de Pernambuco
(UFPE). Leciono como professora formadora no Instituto Federal de
Pernambuco (IFPE) e na Faculdade Pitágoras (João Pessoa/PB), onde
tenho a oportunidade de transmitir minha experiência na área de
tecnologia e educação.
Max André de Azevêdo SilvaOlá. Meu nome é Max Azevêdo Silva. Sou formado em Licenciatura em
Ciência da Computação, pela Universidade Federal da Paraíba, e
mestrando em Ciência da Computação com ênfase em Engenharia de
Software pela Universidade Federal da Paraíba. Possuo experiência na
área de desenvolvimento de sistemas web, mobile e jogos eletrônicos.
Atualmente atuo como Analista de Sistemas.
A possibilidade de expor nossos conhecimentos adquiridos ao longo dos
anos é fantástica! Por isso fomos convidados pela Editora Telesapiens a
integrar seu elenco de autores independentes. Estamos muito felizes em
poder ajudar você nesta fase de muito estudo e trabalho. Conte conosco!
IZABELLY MORAIS E MAX AZEVEDO
“
Iconográficos
Olá. Meu nome é Manuela César de Arruda. Sou o responsável pelo
projeto gráfico de seu material. Esses ícones irão aparecer em sua trilha
de aprendizagem toda vez que:
INTRODUÇÃO
para o início do
desenvolvimento de
uma nova
competência;
DEFINIÇÃO
houver necessidade de
se apresentar um novo
conceito;
NOTA
quando forem
necessários
observações ou
complementações
para o seu
conhecimento;
IMPORTANTE
as observações
escritas tiveram
que ser priorizadas
para você;
EXPLICANDO
MELHOR
algo precisa ser
melhor explicado ou
detalhado;
VOCÊ SABIA?
curiosidades e
indagações lúdicas
sobre o tema em
estudo, se forem
necessárias;
SAIBA MAIS
textos, referências
bibliográficas e links
para aprofundamento
do seu conhecimento;
REFLITA
se houver a necessidade
de chamar a atenção
sobre algo a ser refletido
ou discutido sobre;
ACESSE
se for preciso acessar
um ou mais sites
para fazer download,
assistir vídeos, ler
textos, ouvir podcast;
RESUMINDO
quando for preciso se
fazer um resumo
acumulativo das
últimas abordagens;
ATIVIDADES
quando alguma
atividade de
autoaprendizagem for
aplicada;
TESTANDO
quando o
desenvolvimento de
uma competência for
concluído e questões
forem explicadas;
Sumário
1 ESTRUTURAS REPETITIVAS ...................................................................................... 6
1.1 Repetição interativa com teste no início do laço .................................................... 6
1.1.1 ENQUANTO FAÇA ...................................................................................... 7
1.1.1.1 Contagem ............................................................................... 8
1.1.1.2 Acumulação ............................................................................ 9
1.2 Repetição interativa com teste no final do laço ................................................... 10
1.2.1 REPITA ATÉ ............................................................................................. 10
1.3 Repetição iterativa ............................................................................................. 12
1.3.1 PARA FAÇA ............................................................................................. 13
Considerações Finais ................................................................................................ 15
Atividades de Autoaprendizagem .............................................................................. 15
Questionário Avaliativo ............................................................................................ 15
Bibliografia .............................................................................................................. 16
Lógica de Programação| Izabelly Morais e Max Azevedo | 6
1 Estruturas Repetitivas
INTRODUÇÃO:
Chegamos a provavelmente o ponto mais importante da disciplina,
quando vivenciaremos situações em que teremos de aplicar técnicas de
iteração (ou técnicas de repetição) para solucionarmos problemas
envolvendo acumulação e contagem numérica. Para isto, precisaremos
que você tenha compreendido muito bem as estruturas condicionais
encadeadas, pois seus conceitos serão revalidados ao longo desta aula.
1.1 Repetição interativa com teste no início do laço
Um laço de repetição é uma estrutura que permite a execução de certo
bloco de instruções conforme determinada condição. Esses laços podem
ser:
Interativos: quando necessitam da intervenção de um usuário do
programa para repetir a próxima ação um indeterminado número de
vezes.
Iterativos: quando executam as repetições previstas de forma automática
um número de vezes.
Inicialmente, trataremos da estrutura de repetição com teste no início.
Mas o que isso quer dizer? Quer dizer que, para o restante das instruções
ser executado, uma condição precisa ser testada, e que a repetição da
execução dessa instrução dependerá dessa condição.
OBJETIVO:
Ao término desta aula você será capaz de aplicar estruturas de repetição
em soluções algorítmicas envolvendo contagem e acumulação.
Lógica de Programação| Izabelly Morais e Max Azevedo | 7
A seguir, podemos visualizar a sintaxe de um laço repetitivo com pré-
teste, ou seja, condição no início do laço.
1.1.1 ENQUANTO FAÇA
ENQUANTO <expressão condicional> FAÇA
<instrução-1>
<instrução-2>
...
<instrução-N>
FIMENQUANTO
Para exemplificar, imagine que precisamos desenvolver um
algoritmo que leia uma sequência de números inteiros e,
toda vez que o número digitado for maior que 10, este seja
exibido no console do computador. Ao ser digitado o número
999, o programa deverá ser encerrado. Veja como ficaria
esta solução:
ALGORITMO
VAR
N: INTEIRO
LEIA (N)
ENQUANTO N <> 999 FAÇA
SE N > 10 ENTÃO
ESCREVA (N)
FIMSE
LEIA (N)
FIMENQUANTO
FIMALGORITMO
Exemplo 1
Perceba que estamos diante de uma estrutura repetitiva interativa, ou
seja, a cada looping o usuário interagirá com o programa, no caso,
digitando um número inteiro. Ao executarmos esse mesmo algoritmo no
VisuALG, teremos o seguinte código e monitoramento de resultados no
console:
Condição
Instruçã
o 1
Instruçã
o 2
Instruçã
o N
ENTÃ
O
SENÃ
O
Figura 1 - Fluxograma da estrutura
ENQUANTO-FAÇA.
Fonte: o autor.
Lógica de Programação| Izabelly Morais e Max Azevedo | 8
Figura 2 - Algoritmo-exemplo interpretado pelo VisuALG. Fonte: o autor.
1.1.1.1 Contagem
Ainda aproveitando o mesmo mote do exemplo anterior, imagine que,
desta vez, desejamos exibir a quantidade de números digitados que
foram maiores que 10, ou seja, que foram impressos no console do
computador.
Para isto, vamos recorrer a uma variável de memória auxiliar, que iremos
chamar de C, em alusão ao termo “contador”.
ALGORITMO
VAR
N, C: INTEIRO
LEIA (N)
ENQUANTO N <> 999 FAÇA
SE N > 10 ENTÃO
ESCREVA (N)
C C + 1
FIMSE
LEIA (N)
FIMENQUANTO
ESCREVA (“Números maiores que 10 foram:”, C)
FIMALGORITMO
Exemplo 2
Vamos testá-lo no VisuALG?
Lógica de Programação| Izabelly Morais e Max Azevedo | 9
Figura 3 - Implementando variável contadora. Fonte: o autor
Note que apenas os números 11, 15 e 22 foram impressos e,
consequentemente, contados pela variável C. Perceba que, para esta
contagem ter dado certo, foi necessária a soma do número 1 ao valor
parcial da variável C em cada looping. Ela iniciou a execução do programa
com o valor zero. Ao ser executada a instrução da linha 9 pela primeira
vez, ao zero foi somado o número 1. Na segunda rodada, ao 1 foi somado
mais 1, ficando 2. E, finalmente, na terceira rodada, ao 2 foi somado 1,
ficando 3.
1.1.1.2 Acumulação
Imagine agora que, além da contagem, desejamos totalizar os números
maiores que 10 noalgoritmo anterior. Vamos então lançar mão de uma
nova técnica: a acumulação. Diferentemente da contagem, na
acumulação não somamos 1 à variável, mas sim o próprio número lido.
Vejamos um exemplo de solução neste sentido:
ALGORITMO
VAR
N, C, S: INTEIRO
LEIA (N)
ENQUANTO N <> 999 FAÇA
SE N > 10 ENTÃO
ESCREVA (N)
C C + 1
S S + N
FIMSE
LEIA (N)
FIMENQUANTO
Lógica de Programação| Izabelly Morais e Max Azevedo | 10
ESCREVA (“Números maiores que 10 foram:”, C)
ESCREVA (“, e totalizaram:”, S)
FIMALGORITMO
Exemplo 3
Testando no VisuALG teremos o seguinte resultado:
Figura 4 - Acrescentando uma variável acumuladora. Fonte: o autor.
Se você executar este programa passo a passo (linha a linha), e conseguir
monitorar os valores assumidos pela variável S que implementamos no
algoritmo acima, verá que ela acumulará os números 11, 15 e 22 a cada
looping.
1.2 Repetição interativa com teste no final do laço
1.2.1 REPITA ATÉ
Outra estrutura repetitiva, que também pode ser interativa ou iterativa , é
o REPITA ATÉ. Trata-se de uma estrutura de repetição munida de um pós -
teste de saída do laço, ao invés de um pré -teste, como era o caso do
ENQUANTO FAÇA. Em termos práticos, o REPITA ATÉ só testa se o fluxo de
instruções será percorrido após tê-lo executado, o que não ocorre com o
ENQUANTO FAÇA, que testa a condição de permanência antes de executar
o bloco de instruções.
Lógica de Programação| Izabelly Morais e Max Azevedo | 11
REPITA
<instrução-1>
<instrução-2>
...
<instrução-N>
ATÉ <expressão condicional>
Vamos reescrever o algoritmo do exemplo anterior, substituindo a
estrutura ENQUANTO FAÇA por um REPITA ATÉ?
ALGORITMO
VAR
N, C, S: INTEIRO
REPITA
LEIA (N)
SE (N > 10) E (N <> 999) ENTÃO
ESCREVA (N)
C C + 1
S S + N
FIMSE
ATÉ N = 999
ESCREVA (“Números maiores que 10 foram:”, C)
ESCREVA (“, e totalizaram:”, S)
FIMALGORITMO
Exemplo 4
Observe que esta estrutura não se encerra com um FIMREPITA ou algo do
gênero, mas sim com a condição de escape do laço.
A condição do REPITA ATÉ é a negativa da condição do
ENQUANTO FAÇA, ou seja, ao passo que o ENQUANTO FAÇA
questiona sobre a permanência no laço, o REPITA ATÉ
questiona sobre a sua saída do laço.
IMPORTANTE
Lógica de Programação| Izabelly Morais e Max Azevedo | 12
1.3 Repetição iterativa
Como já dissemos anteriormente, uma repet ição iterativa é o contrário da
interativa, ou seja, trata-se de uma estrutura repetitiva que não interage
com o usuário. O exemplo que vimos anteriormente é tipicamente
interativo, pois o laço pede algo a ser digitado ou ido a cada looping.
Mas, se já soubermos previamente quantos loopings o laço percorrerá até
chegar a seu termo? Por exemplo, imagine que precisamos elaborar um
algoritmo que calcule o somatório de todos os números pares até um
determinado número digitado pelo usuário.
Usando os artifícios que já aprendemos, podemos elaborar o seguinte
algoritmo:
ALGORITMO
VAR
N, C, S: INTEIRO
LEIA (N)
C 2
REPITA
S S + C
C C + 2
ATÉ C > N
ESCREVA (“O somatório é ”, S)
FIMALGORITMO
Exemplo 5
Usando os artifícios que já aprendemos, podemos elaborar o seguinte
algoritmo:
Figura 5 - Algoritmo que calcula a soma de todos os números pares até N. Fonte: o autor
Lógica de Programação| Izabelly Morais e Max Azevedo | 13
Para este tipo de situação, existe uma estrutura repetitiva iterativa que
se adequa perfeitamente ao que se pede: trata -se do PARA FAÇA.
1.3.1 PARA FAÇA
A sintaxe do PARA FAÇA é a seguinte:
PARA <variável> DE <inicial> ATÉ < limite> [PASSO <incremento>] FAÇA
<instrução-1>
<instrução-2>
...
<instrução-N>
FIMPARA
Vamos reescrever o algoritmo do exemplo anterior, substituindo a
estrutura REPITA ATÉ por uma PARA FAÇA?
ALGORITMO
VAR
N, C, S: INTEIRO
LEIA (N)
PARA C DE 2 ATÉ N PASSO 2 FAÇA
S S + C
FIMPARA
ESCREVA (“O somatório é ”, S)
FIMALGORITMO
Veja como o algoritmo ficou menor com a estrutura PARA FAÇA ! A
variável C, quanto parametrizada na estrutura PARA FAÇA, sofre um
incremento automático de 2 até N, de 2 em 2. Isto dispensa a instrução
de contagem que havíamos programado.
Observe que a cláusula PASSO da estrutura repetitiva
PARA FAÇA está entre colchetes. Isto significa que ela é
opcional. Se omitida da estrutura PARA FAÇA, o
incremento sofrido pela variável contadora será de +1.
NOTA
Lógica de Programação| Izabelly Morais e Max Azevedo | 14
Testando no VisuALG, teremos o seguinte código para esta estrutura:
Figura 6 - Estrutura repetitiva iterativa usando o PARA FAÇA. Fonte: o autor.
Lógica de Programação| Izabelly Morais e Max Azevedo | 15
Considerações Finais
SAIBA MAIS:
Acesse a documentação oficial do VisuALG, no que concerne às
estruturas repetitivas, disponível neste link e tenha acesso:
http://www.apoioinformatica.inf.br/produtos/item/14-comandos-de-
repeticao (Acesso em 22/10/2017).
Atividades de Autoaprendizagem
ATIVIDADES:
Pronto para consolidar seus conhecimentos? Leia atentamente o
enunciado de sua atividade de autoaprendizagem proposta para esta
aula. Se você está fazendo o seu curso presencialmente, é só abrir o
seu caderno de atividades. Se você estiver cursando na modalidade de
EAD (Educação a Distância), acesse a sua trilha de aprendizagem no seu
ambiente virtual e realize a atividade de modo online. Você pode
desenvolver esta atividade sozinho ou em parceria com seus colegas de
turma. Dificuldades? Poste suas dúvidas no fórum de discussões em seu
ambiente virtual de aprendizagem. Concluiu a sua atividade? Submeta o
resultado em uma postagem diretamente em seu ambiente virtual de
aprendizagem e boa sorte!
Questionário Avaliativo
TESTANDO:
Chegou a hora de você provar que aprendeu tudo o que foi abordado ao
longo desta aula. Para isto, leia e resolva atentamente as questões do
seu caderno de atividades. Se você estiver fazendo este curso a
distância, acesse o QUIZ (Banco de Questões) em seu ambiente virtual
de aprendizagem.
http://www.apoioinformatica.inf.br/produtos/item/14-comandos-de-repeticao
http://www.apoioinformatica.inf.br/produtos/item/14-comandos-de-repeticao
Lógica de Programação| Izabelly Morais e Max Azevedo | 16
Bibliografia
Apoio Informática. (20 de Out de 2017). As funções do VisuALG versão 2.0 . Fonte:
Apoio Informática: http://www.apoioinformatica.inf.br/produtos/item/30-as-
funcoes-do-visualg-versao-2-0
Lógica de Programação| Izabelly Morais e Max Azevedo | 17
Grupo SER Educacional | Lógica de Programação 1
LÓGICA DE PROGRAMAÇÃO
Lógica de Programação
IZABELLY MORAIS E MAX AZEVEDO
ESTRUTURAS
REPETITIVAS COM
CADEIAS DE
CARACTERES
AULA 11
Diretor Executivo
DAVID LIRA STEPHEN BARROS
Direção Editorial
ANDRÉA CÉSAR PEDROSA
Projeto Gráfico
MANUELA CÉSAR DE ARRUDA
Autor
IZABELLY MORAIS E MAX AZEVEDO
Desenvolvedor
CAIO BENTO GOMES DOS SANTOS
O Autor
Izabelly Morais de Morais
Olá. Meu nome é Izabelly Morais. Sou licenciada em Ciência da
Computaçãopela Universidade Federal da Paraíba (UFPB), e mestre em
Ciência da Computação com ênfase em Engenharia de Software e
Linguagens de Programação pela Universidade Federal de Pernambuco
(UFPE). Leciono como professora formadora no Instituto Federal de
Pernambuco (IFPE) e na Faculdade Pitágoras (João Pessoa/PB), onde
tenho a oportunidade de transmitir minha experiência na área de
tecnologia e educação.
Max André de Azevêdo Silva
Olá. Meu nome é Max Azevêdo Si lva. Sou formado em Licenciatura em
Ciência da Computação, pela Universidade Federal da Paraíba, e
mestrando em Ciência da Computação com ênfase em Engenharia de
Software pela Universidade Federal da Paraíba. Possuo experiência na
área de desenvolvimento de sistemas web, mobile e jogos eletrônicos.
Atualmente atuo como Analista de Sistemas.
A possibilidade de expor nossos conhecimentos adquiridos ao longo dos
anos é fantástica! Por isso fomos convidados pela Editora Telesapiens a
integrar seu elenco de autores independentes. Estamos muito felizes em
poder ajudar você nesta fase de muito estudo e trabalho. Conte conosco!
IZABELLY MORAIS E MAX AZEVEDO
“
Iconográficos
Olá. Meu nome é Manuela César de Arruda. Sou o responsável pelo
projeto gráfico de seu material. Esses ícones irão aparecer em sua trilha
de aprendizagem toda vez que:
INTRODUÇÃO
para o início do
desenvolvimento de
uma nova
competência;
DEFINIÇÃO
houver necessidade de
se apresentar um novo
conceito;
NOTA
quando forem
necessários
observações ou
complementações
para o seu
conhecimento;
IMPORTANTE
as observações
escritas tiveram
que ser priorizadas
para você;
EXPLICANDO
MELHOR
algo precisa ser
melhor explicado ou
detalhado;
VOCÊ SABIA?
curiosidades e
indagações lúdicas
sobre o tema em
estudo, se forem
necessárias;
SAIBA MAIS
textos, referências
bibliográficas e links
para aprofundamento
do seu conhecimento;
REFLITA
se houver a necessidade
de chamar a atenção
sobre algo a ser refletido
ou discutido sobre;
ACESSE
se for preciso acessar
um ou mais sites
para fazer download,
assistir vídeos, ler
textos, ouvir podcast;
RESUMINDO
quando for preciso se
fazer um resumo
acumulativo das
últimas abordagens;
ATIVIDADES
quando alguma
atividade de
autoaprendizagem for
aplicada;
TESTANDO
quando o
desenvolvimento de
uma competência for
concluído e questões
forem explicadas;
Sumário
1 ESTRUTURAS REPETITIVAS COM CADEIAS DE CARACTERES ....................................... 6
1.1 Relembrando funções caractere ............................................................................ 6
1.2 Problemas envolvendo pesquisa ............................................................................ 7
Considerações Finais ................................................................................................ 13
Atividades de Autoaprendizagem .............................................................................. 13
Questionário Avaliativo ............................................................................................ 13
Bibliografia .............................................................................................................. 14
Lógica de Programação| Izabelly Morais e Max Azevedo | 6
1 Estruturas Repetitivas com Cadeias de
Caracteres
INTRODUÇÃO:
Como dissemos anteriormente, ao avançarmos nos estudos dos
algoritmos, fica cada vez menor a carga teórica a ser estudada e, por
outro lado, maior fica a necessidade de praticarmos . Ao longo desta aula
iremos retomar nossos conhecimentos acerca das estruturas repetitivas
que estudamos anteriormente, aplicando-os a novas situações, como por
exemplo, a manipulação de cadeias de caracteres dentro de variáveis
alfanuméricas.
1.1 Relembrando funções caractere
Como já abordado anteriormente, também conhecidas como funções
string, as funções caractere têm por finalidade ler expressões
alfanuméricas (constantes ou variáveis) e retornar valores ou cadeias de
caracteres para serem utilizadas em instruções, ou ainda, como
argumentos de outras funções.
Na prática, as funções string são importantes para a atividade de
programação pelas seguintes razões:
Muitas vezes necessitamos comparar o valor numérico de uma
expressão string com o de outra ou atribuirmos tal valor a uma
variável numérica.
Também é comum precisarmos isolar parte de uma variável string.
OBJETIVO:
Ao término desta aula você será capaz de aplicar estruturas de repetição
em soluções algorítmicas envolvendo cadeias de caracteres e variáveis
alfanuméricas.
Lógica de Programação| Izabelly Morais e Max Azevedo | 7
São essas as funções string suportadas pelo VisuALG, mas existem
inúmeras outras, dependendo da linguagem de programação.
Função Finalidade Exemplo
Caracpnum()
Retorna o número inteiro ou real
equivalente à cadeia de
caracteres ou expressão
alfanumérica informada como
argumento da função, no caso,
PALAVRA.
Var
PALAVRA: caractere
RESUTADO: inteiro
PALAVRA “1000”
RESULTADO CARACPNUM(PALAVRA) + 2000
ESCREVA RESULTADO
Numpcarac()
Retorna uma cadeia de
caracteres contendo a
representação alfanumérica de
NUMERO. Esta função faz
exatamente o contrário da
Caracpnum(), ou seja, converte
um NUMERO em uma String.
Var
NUMERO: inteiro
RESUTADO: caractere
NUMERO 1000
RESULTADO NUMPCARAC(NUMERO) + “ reais”
ESCREVA RESULTADO
Compr()
Retorna um valor numérico
inteiro correspondente ao
tamanho da variável, constante
ou expressão FRASE. Em outras
palavras, essa função serve para
contar quantos caracteres
existem na expressão, constante
ou variável passada como
argumento da função.
Var
FRASE: caractere
RESUTADO: inteiro
FRASE “Há mais brilhos em nossos olhos que
estrelas no céu”
RESULTADO COMPR(FRASE)
ESCREVA RESULTADO
Copia()
Retorna uma cadeia de
caracteres contendo uma cópia
parcial de FRASE, a partir do
caractere situado na posição
INICIO, contendo TAMANHO
caracteres a partir daquela
posição. Os caracteres são
numerados da esquerda para a
direita, começando de 1.
Var
FRASE: caractere
RESUTADO: caractere
FRASE “Há mais brilhos em nossos olhos que
estrelas no céu”
RESULTADO COPIA(FRASE, 9, 7)
ESCREVA RESULTADO
Tabela 1: Principais funções string do VisuALG. Fonte: o autor.
1.2 Problemas envolvendo pesquisa
Você já se perguntou como o buscador da Google consegue analisar de
forma tão eficiente o que escrevemos na barra de pesquisa? O algoritmo
de busca da Google é considerado um dos marcos revolucion ários do
mundo digital contemporâneo, tendo chegado a dar origem a toda uma
ciência conhecida hoje como Marketing de Buscas, entre outras
terminologias técnicas.
Lógica de Programação| Izabelly Morais e Max Azevedo | 8
Claro que não iremos abordar nem
um por cento de toda a genialidade
empregada no algoritmo da Google,
mas certamente iremos começar a
entender como ele o sistema de
buscas consegue ter acesso às
partes dos conteúdos que digitamos
na barra de pesquisa.
E para começar, vamos imaginar um
algoritmo capaz de ler uma letra ou
símbolo qualquer e encontrá-lo
dentro de um texto digitado,
informando ao usuário em que
posição do texto ele se encontra.
Caso o caractere não seja
localizado, a mensagem “Caractere não encontrado no texto” deve ser
exibida. Do contrário: “Encontrado o caractere na posição #”, onde # é a
posição numérica do caractere da esquerda para a direita.
ALGORITMO
VARTEXTO, SIMBOLO: CARACTERE
POSIC, IND: INTEIRO
ESCREVA “Digite um texto: ”
LEIA TEXTO
ESCREVA “ – Agora digite uma letra ou algarismo a ser pesquisado: ”
LEIA SIMBOLO
PARA IND DE 1 ATÉ COMPR(TEXTO) FAÇA
SE COPIA(TEXTO, IND, 1) = SIMBOLO ENTÃO
POSIC IND
FIMSE
FIMPARA
SE POSIC = 0 ENTÃO
ESCREVA “Caractere não encontrado no texto”
SENÃO
ESCREVA “Encontrado o caractere na posição ”, POSIC
FIMSE
FIMALGORITMO
Exemplo 1 - Algoritmo-exemplo de uma busca de caracteres
Vamos testar este algoritmo no VisuALG? Fazendo as devidas adaptações
sintáticas, teremos:
Figura 1 - Barra de pesquisa Google. Fonte:
https://pixabay.com/pt/google-www-pesquisa-on-line-485611/
Lógica de Programação| Izabelly Morais e Max Azevedo | 9
Figura 2 - Algoritmo-exemplo de pesquisa textual. Fonte: o autor.
Primeiramente, perceba que lançamos mão da estrutura
repetitiva PARA FAÇA, percorrendo toda a cadeia de
caracteres contida dentro da variável TEXTO digitada pelo
usuário. A variável IND foi criada com o objetivo de
representar a posição de cada caractere presente dentro
da variável TEXTO, por isso ela teve seu valor variando de
1 até o tamanho total da variável TEXTO, expresso pela
função COMPR(TEXTO). Note que, a cada looping do laço
PARA FAÇA, foi utilizada uma estrutura condicional SE
para perguntar se o caractere corrente (posição IND) era
igual ao caractere pesquisado (presente na variável
SIMBOLO). Caso afirmativo, este caractere corrente será
atribuído à variável POSIC, que irá guardar a posição do
caractere encontrado. Caso o laço chegue até seu término
sem ter localizado o caractere pesquisado, nada restará
dentro da variável POSIC exceto seu valor inicial, que é
ZERO. Por isso, após a cláusula FIMPARA, o algoritmo está
perguntando se POSIC é igual a zero. Se for, é porque o
caractere não foi localizado. Do contrário, é só exibir seu
valor final.
EXPLICANDO MELHOR
Lógica de Programação| Izabelly Morais e Max Azevedo | 10
Vamos testar nosso algoritmo? Primeiramente digite o
texto: “EU TE AMO” e procure pela letra “A”. Pronto? É só
rodar o programa no VisuALG.
Figura 3 - Testando com um caractere existente. Fonte: o autor
E se digitássemos um caractere inexistente no texto?
Experimente a letra “W” usando o mesmo texto digitado
anteriormente. O que você vai ver no console do computa?
Figura 4 - Testando com um caractere inexistente no texto. Fonte: o autor.
TESTANDO
Lógica de Programação| Izabelly Morais e Max Azevedo | 11
O que aconteceria se tentássemos localizar a letra “E” na
frase “EU TE AMO”, utilizando esse algoritmo que acabamos
de elaborar? Note que essa letra aparece duas vezes na frase
digitada.
( ) O algoritmo irá escrever apenas a posição da
primeira letra “E” que aparece no texto?
( ) A última posição da letra “E” será a exibida?
( ) A letra “E” não será localizada no texto?
( ) O algoritmo vai provocar um erro de sintaxe?
Veja você mesmo:
Figura 5 - Testando com um caractere em duplicidade. Fonte: o autor.
Perceba que a resposta certa é:
( X ) A última posição da letra “E” será a exibida?
REFLITA
Lógica de Programação| Izabelly Morais e Max Azevedo | 12
Você deve enriquecer cada vez mais o seu algoritmo,
testando todas as situações possíveis e imagináveis,
melhorando-o cada vez mais. Depois implemente outras
informações, como um contador de vezes que o caractere
pesquisado aparece, com base no exemplo visto
anteriormente.
IMPORTANTE
Lógica de Programação| Izabelly Morais e Max Azevedo | 13
Considerações Finais
SAIBA MAIS:
Em VisuALG existem algumas funções caractere que tratam da
representação ASCII dos caracteres de uma expressão string. São
elas: ASC() e CARAC(). Mas você sabe o que é ASCII? Acesse as fontes
de consulta a seguir e aprenda mais sobre:
Funções do VisuALG:
http://www.apoioinformatica.inf.br/produtos/item/30
-as-funcoes-do-visualg-versao-2-0 (Acesso em
22/10/2017);
Tabela ASCII:
http://ic.unicamp.br/~everton/aulas/hardware/tabela
ASCII.pdf
(Acesso em 22/10/2017).
Atividades de Autoaprendizagem
ATIVIDADES:
Pronto para consolidar seus conhecimentos? Leia atentamente o
enunciado de sua atividade de autoaprendizagem proposta para esta
aula. Se você está fazendo o seu curso presencialmente, é só abrir o
seu caderno de atividades. Se você estiver cursando na moda lidade de
EAD (Educação a Distância), acesse a sua trilha de aprendizagem no seu
ambiente virtual e realize a atividade de modo online. Você pode
desenvolver esta atividade sozinho ou em parceria com seus colegas de
turma. Dificuldades? Poste suas dúvidas no fórum de discussões em seu
ambiente virtual de aprendizagem. Concluiu a sua atividade? Submeta o
resultado em uma postagem diretamente em seu ambiente virtual de
aprendizagem e boa sorte!
Questionário Avaliativo
TESTANDO:
Chegou a hora de você provar que aprendeu tudo o que foi abordado ao
longo desta aula. Para isto, leia e resolva atentamente as questões do
seu caderno de atividades. Se você estiver fazendo este curso a
distância, acesse o QUIZ (Banco de Questões) em seu ambiente virtual
de aprendizagem.
http://www.apoioinformatica.inf.br/produtos/item/30-as-funcoes-do-visualg-versao-2-0
http://www.apoioinformatica.inf.br/produtos/item/30-as-funcoes-do-visualg-versao-2-0
http://ic.unicamp.br/~everton/aulas/hardware/tabelaASCII.pdf
http://ic.unicamp.br/~everton/aulas/hardware/tabelaASCII.pdf
Lógica de Programação| Izabelly Morais e Max Azevedo | 14
Bibliografia
Apoio Informática. (20 de Out de 2017). As funções do VisuALG versão 2.0 . Fonte:
Apoio Informática: http://www.apoioinformatica.inf.br/produtos/item/30 -as-
funcoes-do-visualg-versao-2-0
Unicamp. (22 de Out de 2017). Tabela ASCII - Completa - IC/Unicamp. Fonte:
Unicamp: http://ic.unicamp.br/~everton/aulas/hardware/tabelaASCII.pdf
Lógica de Programação| Izabelly Morais e Max Azevedo | 15
Grupo SER Educacional | Lógica de Programação 1
LÓGICA DE PROGRAMAÇÃO
Lógica de Programação
IZABELLY MORAIS E MAX AZEVEDO
VETORES
AULA 12
Diretor Executivo
DAVID LIRA STEPHEN BARROS
Direção Editorial
ANDRÉA CÉSAR PEDROSA
Projeto Gráfico
MANUELA CÉSAR DE ARRUDA
Autor
IZABELLY MORAIS E MAX AZEVEDO
Desenvolvedor
CAIO BENTO GOMES DOS SANTOS
O Autor
Izabelly Morais de Morais
Olá. Meu nome é Izabelly Morais. Sou licenciada em Ciência da
Computação pela Universidade Federal da Paraíba (UFPB), e mestre em
Ciência da Computação com ênfase em Engenharia de Software e
Linguagens de Programação pela Universidade Federal de Pernambuco
(UFPE). Leciono como professora formadora no Instituto Federal de
Pernambuco (IFPE) e na Faculdade Pitágoras (João Pessoa/PB), onde
tenho a oportunidade de transmitir minha experiência na área de
tecnologia e educação.
Max André de Azevêdo Silva
Olá. Meu nome é Max Azevêdo Si lva. Sou formado em Licenciatura em
Ciência da Computação, pela UniversidadeFederal da Paraíba, e
mestrando em Ciência da Computação com ênfase em Engenharia de
Software pela Universidade Federal da Paraíba. Possuo experiência na
área de desenvolvimento de sistemas web, mobile e jogos eletrônicos.
Atualmente atuo como Analista de Sistemas.
A possibilidade de expor nossos conhecimentos adquiridos ao longo dos
anos é fantástica! Por isso fomos convidados pela Editora Telesapiens a
integrar seu elenco de autores independentes. Estamos muito felizes em
poder ajudar você nesta fase de muito estudo e trabalho. Conte conosco!
IZABELLY MORAIS E MAX AZEVEDO
“
Iconográficos
Olá. Meu nome é Manuela César de Arruda. Sou o responsável pelo
projeto gráfico de seu material. Esses ícones irão aparecer em sua trilha
de aprendizagem toda vez que:
INTRODUÇÃO
para o início do
desenvolvimento de
uma nova
competência;
DEFINIÇÃO
houver necessidade de
se apresentar um novo
conceito;
NOTA
quando forem
necessários
observações ou
complementações
para o seu
conhecimento;
IMPORTANTE
as observações
escritas tiveram
que ser priorizadas
para você;
EXPLICANDO
MELHOR
algo precisa ser
melhor explicado ou
detalhado;
VOCÊ SABIA?
curiosidades e
indagações lúdicas
sobre o tema em
estudo, se forem
necessárias;
SAIBA MAIS
textos, referências
bibliográficas e links
para aprofundamento
do seu conhecimento;
REFLITA
se houver a necessidade
de chamar a atenção
sobre algo a ser refletido
ou discutido sobre;
ACESSE
se for preciso acessar
um ou mais sites
para fazer download,
assistir vídeos, ler
textos, ouvir podcast;
RESUMINDO
quando for preciso se
fazer um resumo
acumulativo das
últimas abordagens;
ATIVIDADES
quando alguma
atividade de
autoaprendizagem for
aplicada;
TESTANDO
quando o
desenvolvimento de
uma competência for
concluído e questões
forem explicadas;
Sumário
1 VETORES ............................................................................................................... 6
1.1 Conceito de vetor ................................................................................................. 6
1.1.1 Sintaxe da declaração de um vetor ............................................................ 8
1.2 Problemas envolvendo vetores.............................................................................. 9
Considerações Finais ................................................................................................ 11
Atividades de Autoaprendizagem .............................................................................. 11
Questionário Avaliativo ............................................................................................ 11
Bibliografia .............................................................................................................. 12
Lógica de Programação| Izabelly Morais e Max Azevedo | 6
1 Vetores
INTRODUÇÃO:
Chegamos a um ponto bastante relevante dos estudos algorítmicos. Ao
longo da evolução das ciências da computação, sentiu -se necessidade de
expandir o conceito de variáveis de memória, pois essas somente
conseguiam armazenar um dado por vez. Por exemplo, se quiséssemos
guardar os números telefônicos que possuímos, precisar íamos de uma
variável diferente para cada um desses números. Mas, desse modo, como
desenvolver uma lógica para ler e imprimir todos os nossos números
telefônicos de que dispomos? Com os conhecimentos que acumulamos
até aqui, a única ideia factível é armazenar todos eles em uma variável
do tipo caractere e, depois, utilizar um algoritmo de pesquisa para
destrinchar os números telefônicos isoladamente. Complicado? Para ficar
mais fácil, vamos entender o conceito e as aplicações dos vetores.
1.1 Conceito de vetor
Da matemática que estudamos em nosso ensino médio, sabemos que um
vetor é uma linha ou uma coluna de uma matriz, que por sua vez,
representa uma tabela que armazena números ou quaisquer outras
informações organizadas em linhas e colunas.
Na ciência da computação, o conceito de vetor não difere muito, no
entanto, está associado à definição de variáveis de memória.
OBJETIVO:
Ao término desta aula você será capaz de entender o conceito e as
aplicações de vetores em soluções algorítmicas .
Lógica de Programação| Izabelly Morais e Max Azevedo | 7
Assim, por exemplo, se quisermos armazenar as notas que um
determinado aluno obteve ao longo de um ano letivo, teremos:
10,0 9,5 6,5 7,0 8,5 4,0 10,0 6,5
1 2 3 4 5 6 7 8
Tabela 1: Exemplo de vetor contendo notas obtidas por um aluno. Font e: o autor.
Mas, qual a utilidade prática de um vetor como esse? Para entender
melhor, imagine que precisamos elaborar um algoritmo que leia todas as
oito notas que um aluno obteve ao longo de seu ano letivo e depois,
calcule a média aritmética que esse aluno conseguiu ao final do último
período. Com os conhecimentos acumulados até o momento, teríamos de
criar 8 variáveis de memória distintas, uma para cada nota. Teríamos
então um algoritmo bastante extenso e engessado, pois para adaptá-lo a
qualquer variação em termos de quantidade de notas, teríamos que criar
ou subtrair mais e mais variáveis.
ALGORITMO
VAR
IND: INTEIRO
NOTA1, NOTA2, NOTA3, NOTA4, NOTA5, NOTA6, NOTA7, NOTA8, MED:
REAL
ESCREVA “Digite 8 notas: ”
LEIA NOTA1, NOTA2, NOTA3, NOTA4, NOTA5, NOTA6, NOTA7, NOTA8
MED <-
(NOTA1+NOTA2+NOTA3+NOTA4+NOTA5+NOTA6+NOTA7+NOTA8?/8
ESCREVA “A média é: ”, MED
FIMALGORITMO
Exemplo 1 - Algoritmo que lê e calcula média de oito notas escolares.
Vetores são variáveis de memória homogêneas capazes de
armazenar mais de um dado simultaneamente, indexando-
os quanto ao seu posicionamento relativo em sua
estrutura.
DEFINIÇÃO
Lógica de Programação| Izabelly Morais e Max Azevedo | 8
Em VisuALG, teríamos:
Figura 1 - Algoritmo-exemplo usando variáveis simples. Fonte o autor.
Mas, se usarmos o conceito de vetor, poderemos economizar a
declaração de oito variáveis, trocando-as por apenas uma: a variável tipo
vetor NOTAS[].
1.1.1 Sintaxe da declaração de um vetor
Para declarar uma variável do tipo vetor em um algoritmo (compatível
com a linguagem VisuALG), tem-se:
<nome da variável>: VETOR [1..#] DE <tipo da variável>
Exemplos:
VAR
NOTAS: VETOR [1..8] DE REAL
Uma vez declarada, uma variável , do tipo vetor, pode ser utilizada
livremente, da mesma maneira que uma variável simples, tendo , porém,
o cuidado de sempre se referir a um de seus elementos, e não a ela como
um todo. Assim, para atribuirmos uma nota 9,0 ao quinto elemento do
vetor NOTAS, teremos:
NOTAS[5] 9.0
Lógica de Programação| Izabelly Morais e Max Azevedo | 9
1.2 Problemas envolvendo vetores
Lembra do último algoritmo que construímos? Aquele que lê 8 notas,
calcula e exibe a média? Que tal reescrevê-lo envolvendo um vetor?
ALGORITMO
VAR
IND: INTEIRO
MED: REAL
NOTAS: VETOR [1..8] DE REAL
PARA IND DE 1 ATÉ 8 FAÇA
LEIA NOTAS[IND]
MED MED + NOTAS[IND]
Ao número 5 (“cinco”) que usamos entre colchetes damos
o nome de índice do vetor, que referencia seu quinto
elemento. Cada elemento de um vetor se comporta como
uma variável simples, ou seja, pode receber valores
atribuídos e participar como operandos em todo e
qualquer tipo de expressão, respeitando sempre o seu
tipo.
EXPLICANDO MELHOR
Sendo uma variável homogênea, o vetor não pode ter
elementos de diferentes tipos.Em outras palavras, uma
vez declarado como numérico inteiro, todos os seus
elementos só poderão receber valores numéricos inteiros.
No entanto, em algumas linguagens de programação,
como o Visual Basic, os vetores são tratados como
variáveis heterogêneas, podendo receber dados de
diferentes tipos para seus elementos.
IMPORTANTE
Lógica de Programação| Izabelly Morais e Max Azevedo | 10
FIMPARA
ESCREVA “A média é: ”, MED/8
FIMALGORITMO
Exemplo 2 - O mesmo algoritmo usando vetor em vez de variáveis simples.
Vamos testar esse programa usando o VisuALG?
Recorremos aqui à estrutura de repetição FAÇA
PARA, onde, a cada looping do laço, o
algoritmo recebeu uma nota do aluno e, ao
mesmo tempo, acumulou-o na variável MED.
Após o término do laço, foi só exibir o valor
acumulado das notas dividido por oito notas, o
que resulta na média aritmética das oito notas
digitadas.
Note que a principal vantagem desse método
está na flexibilidade do algoritmo, que, com
pequenas alterações, funcionará para qualquer
quantidade de notas a serem digitadas.
E então! Gostou de trabalhar com vetores? A
partir agora é só praticar e praticar. Existe uma
infinidade de situações onde os vetores são
perfeitamente aplicáveis. Por exemplo, que tal
incrementar este algoritmo que acabamos de
construir, deixando a quantidade de notas
variável?
Para fazer isto, basta incluir uma linha de
instrução solicitando este quantitativo do usuário, logo no início do
algoritmo.
Figura 2 - Testando no VisuALG. Fonte: o autor.
Enriquecer cada vez mais o seu algoritmo, testando todas
as situações possíveis e imagináveis, melhorando-o cada
vez mais.
IMPORTANTE
Lógica de Programação| Izabelly Morais e Max Azevedo | 11
Considerações Finais
SAIBA MAIS:
Você é daqueles que mal pode esperar para avançar nos estudos?
Então acesse este material de aprofundamento sobre Vetores e
Matrizes, disponível no link:
http://www.ouropreto.ifmg.edu.br/tp/slides/03-vetor-e-matriz (Acesso
em 22/10/2017).
Atividades de Autoaprendizagem
ATIVIDADES:
Pronto para consolidar seus conhecimentos? Leia atentamente o
enunciado de sua atividade de autoaprendizagem proposta para esta
aula. Se você está fazendo o seu curso presencialmente, é só abrir o
seu caderno de atividades. Se você estiver cursando na moda lidade de
EAD (Educação a Distância), acesse a sua trilha de aprendizagem no seu
ambiente virtual e realize a atividade de modo online. Você pode
desenvolver esta atividade sozinho ou em parceria com seus colegas de
turma. Dificuldades? Poste suas dúvidas no fórum de discussões em seu
ambiente virtual de aprendizagem. Concluiu a sua atividade? Submeta o
resultado em uma postagem diretamente em seu ambiente virtual de
aprendizagem e boa sorte!
Questionário Avaliativo
TESTANDO:
Chegou a hora de você provar que aprendeu tudo o que foi abordado ao
longo desta aula. Para isto, leia e resolva atentamente as questões do
seu caderno de atividades. Se você estiver fazendo este curso a
distância, acesse o QUIZ (Banco de Questões) em seu ambiente virtual
de aprendizagem.
http://www.ouropreto.ifmg.edu.br/tp/slides/03-vetor-e-matriz
Lógica de Programação| Izabelly Morais e Max Azevedo | 12
Bibliografia
LOPES, A. (22 de Out de 2017). Vetores e Martrizes - IFMG - Campus Ouro Preto.
Fonte: IFMG - Instituto Federal de Minas Gerais:
http://www.ouropreto.ifmg.edu.br/tp/slides/03-vetor-e-matriz
Lógica de Programação| Izabelly Morais e Max Azevedo | 13
Grupo SER Educacional | Lógica de Programação 1
LÓGICA DE PROGRAMAÇÃO
Lógica de Programação
IZABELLY MORAIS E MAX AZEVEDO
MATRIZES
AULA 13
Diretor Executivo
DAVID LIRA STEPHEN BARROS
Direção Editorial
ANDRÉA CÉSAR PEDROSA
Projeto Gráfico
MANUELA CÉSAR DE ARRUDA
Autor
IZABELLY MORAIS E MAX AZEVEDO
Desenvolvedor
CAIO BENTO GOMES DOS SANTOS
O Autor
Izabelly Morais de Morais
Olá. Meu nome é Izabelly Morais. Sou licenciada em Ciência da
Computação pela Universidade Federal da Paraíba (UFPB), e mestre em
Ciência da Computação com ênfase em Engenharia de Software e
Linguagens de Programação pela Universidade Federal de Pernambuco
(UFPE). Leciono como professora formadora no Instituto Federal de
Pernambuco (IFPE) e na Faculdade Pitágoras (João Pessoa/PB), onde
tenho a oportunidade de transmitir minha experiência na área de
tecnologia e educação.
Max André de Azevêdo Silva
Olá. Meu nome é Max Azevêdo Silva. Sou formado em Licenciatura em
Ciência da Computação, pela Universidade Federal da Paraíba, e
mestrando em Ciência da Computação com ênfase em Engenharia de
Software pela Universidade Federal da Paraíba. Possuo experiência na
área de desenvolvimento de sistemas web, mobile e jogos eletrônicos.
Atualmente atuo como Analista de Sistemas.
A possibilidade de expor nossos conhecimentos adquiridos ao longo dos
anos é fantástica! Por isso fomos convidados pela Editora Telesapiens a
integrar seu elenco de autores independentes. Estamos muito felizes em
poder ajudar você nesta fase de muito estudo e trabalho. Conte conosco!
IZABELLY MORAIS E MAX AZEVEDO
“
Iconográficos
Olá. Meu nome é Manuela César de Arruda. Sou o responsável pelo
projeto gráfico de seu material. Esses ícones irão aparecer em sua trilha
de aprendizagem toda vez que:
INTRODUÇÃO
para o início do
desenvolvimento de
uma nova
competência;
DEFINIÇÃO
houver necessidade de
se apresentar um novo
conceito;
NOTA
quando forem
necessários
observações ou
complementações
para o seu
conhecimento;
IMPORTANTE
as observações
escritas tiveram
que ser priorizadas
para você;
EXPLICANDO
MELHOR
algo precisa ser
melhor explicado ou
detalhado;
VOCÊ SABIA?
curiosidades e
indagações lúdicas
sobre o tema em
estudo, se forem
necessárias;
SAIBA MAIS
textos, referências
bibliográficas e links
para aprofundamento
do seu conhecimento;
REFLITA
se houver a necessidade
de chamar a atenção
sobre algo a ser refletido
ou discutido sobre;
ACESSE
se for preciso acessar
um ou mais sites
para fazer download,
assistir vídeos, ler
textos, ouvir podcast;
RESUMINDO
quando for preciso se
fazer um resumo
acumulativo das
últimas abordagens;
ATIVIDADES
quando alguma
atividade de
autoaprendizagem for
aplicada;
TESTANDO
quando o
desenvolvimento de
uma competência for
concluído e questões
forem explicadas;
Sumário
1 MATRIZES .............................................................................................................. 8
1.1 Conceito de matriz ................................................................................................ 8
1.1.1 Sintaxe da declaração de matrizes .......................................................... 10
1.2 Problemas envolvendo matrizes .......................................................................... 11
Considerações Finais ................................................................................................ 14
Atividades de Autoaprendizagem .............................................................................. 14
Questionário Avaliativo ............................................................................................ 14
Bibliografia ..............................................................................................................15
Trilha de Aprendizagem
Olá. Meu nome é Andréa César. Sou responsável pela direção editorial
deste livro didático e de todos os demais recursos relacio nados com a sua
trilha de aprendizagem. Você está iniciando seus estudos sobre LÓGICA
DE PROGRAMAÇÃO, e o nosso objetivo é auxiliar você no desenvolvimento
das competências necessárias ao seu exercício profissional. Para isto,
distribuímos os conteúdos didáticos deste livro em quatro semanas de
estudo, onde, em cada uma delas, haverá uma competência a ser
construída. Cada uma dessas competências será desenvolvida por meio
de quatro atividades de estudo, que podemos chamar de “aulas”. Em
cada aula, você terá uma introdução ao tema abordado, os objetivos a
serem alcançados, uma atividade de autoaprendizagem proposta e uma
lista de exercícios a serem respondidos. Quer saber quais serão as
competências que você irá desenvolver ao longo dessas quatro semanas
de estudo? Então vamos a elas:
Compreender os conceitos fundamentais da ciência da computação, 1.
sobretudo no que concerne a softwares e programação de
computadores.
Desenvolver algoritmos estruturados envolvendo operações com 2.
variáveis e comandos condicionais simples.
Utilizar estruturas condicionais encadeadas e iterativas, além de 3.
efetuar operações envolvendo vetores.
Trabalhar com matrizes e modulação de algoritmos, como 4.
procedimentos e funções.
Ao longo desta semana iremos desenvolver a competência de número: 4.
Vamos arregaçar as mangas? Ao trabalho!
Lógica de Programação| Izabelly Morais e Max Azevedo | 7
4ª SEMANA DE ESTUDOS
INTRODUÇÃO:
hegamos à reta final de nossos estudos. Ao longo desta
semana ampliaremos o conceito de vetores para matrizes,
passando, logo em seguida, a estruturas de dados
heterogêneas, como arquivos sequenciais. Neste momento
abordaremos as aplicações comerciais mais corriqueiras, como lê-
imprime com totalizações e subtotalizações. E, por fim, aprenderemos a
modular programas por meio de procedimentos e funções externas.
Preparado para mais este salto rumo ao seu aprendizado? Conte conosco!
OBJETIVOS:
Ao término desta semana de estudos, você será capaz de:
Entender o conceito e as aplicações de matrizes em soluções
algorítmicas.
Trabalhar com arquivos de dados na algoritmização das soluções
comerciais mais corriqueiras.
Modular algoritmos por meio de procedimentos.
Criar e utilizar funções externas à linguagem de programação.
Mãos à obra? Conte com a gente!
C
Lógica de Programação| Izabelly Morais e Max Azevedo | 8
1 Matrizes
INTRODUÇÃO:
Agora que você já sabe manipular dados em vetores, não será difícil
entender como funcionam as matrizes. Diferentemente de um vetor, que
só armazena dados em uma única direção, as matrizes são capazes de
organizar esses dados em duas dimensões: linhas e colunas. Veremos que
a forma de as manipular quanto à atribuição de valores e envolvimento
em operações de toda natureza é praticamente a mesma empregada nos
vetores. Mas, por que matrizes? Que tipos de aplicações os vetores não
conseguem resolver? É isso que veremos a partir de agora.
1.1 Conceito de matriz
A matemática que estudamos nos ensinou que uma matriz é um
agrupamento de números organizados por linhas e colunas. Em função
disto, muito nos foi ensinado como determinantes, diagonais, matriz
transposta, entre outras operações algébricas.
Na ciência da computação, o conceito de matrizes não difere muito. A
diferença é que, além de números, todo e qualquer tipo de dado poderá
ser armazenado em suas células.
Assim como nas planilhas eletrônicas, em cada uma dessas células
podem ser armazenadas informações, porém, no caso das matrizes
aplicáveis a algoritmos, esses dados precisam ter um único tipo. Essa
característica faz das matrizes variáveis bidimensionais homogêneas.
OBJETIVO:
Ao término desta aula você será capaz de entender o conceito e as
aplicações de matrizes em soluções algorítmicas.
Lógica de Programação| Izabelly Morais e Max Azevedo | 9
Assim, por exemplo, se quisermos armazenar as notas que um
determinado aluno obteve ao longo de um ano letivo , juntamente com
seus respectivos pesos para efeito de cálculo da média ponderada ,
teremos:
1 2 3 4 5 6 7 8
1 10,0 9,5 6,5 7,0 8,5 4,0 10,0 6,5
2 1 1 1 2 1 1 1 2
Tabela 1: Exemplo de matriz contendo notas obtidas por um aluno (linha 1) e seus respectivos pesos
(linha 2) . Fonte: o autor.
Mas, qual a utilidade prática de uma matriz como essa? Lembra da aula
sobre vetores? Assim como o uso de um vetor economizou a declaração
de oito variáveis de memória naquele exemplo, a utilização de uma
matriz pode economizar a declaração de dois vetores, um para armazenar
as notas e o outro para armazenar os pesos.
Desse modo, vamos imaginar que o nosso algoritmo deva coletar as notas
e os pesos de um aluno e, depois, calcule a média ponderada que esse
aluno conseguiu ao final do último período.
Matrizes são variáveis de memória heterogêneas capazes
de armazenar mais de um dado simultaneamente,
indexando-os quanto ao seu posicionamento relativo em
sua estrutura por meio de duas dimensões: linha e coluna .
Por isso são conhecidas como variáveis bidimensionais.
DEFINIÇÃO
Lógica de Programação| Izabelly Morais e Max Azevedo | 10
1.1.1 Sintaxe da declaração de matrizes
O VisuALG chama matrizes como vetores, com a diferença de adicionar
mais uma dimensão para armazenagem de dados. Em termos práticos,
uma matriz de L linhas e C colunas é declarada da seguinte forma em
VisuALG:
<nome da variável>: VETOR [1..L, 1..C] DE <tipo da variável>
Exemplos:
VAR
NOTASEPESOS: VETOR [1..2, 1..8] DE REAL
Assim como no caso dos vetores, uma vez declarada, uma matriz pode ser
utilizada livremente, da mesma maneira que uma variável simples, tendo,
porém, o cuidado de sempre se referir a um de seus elementos, e não a
ela como um todo. Assim, para atribuirmos a nota 8,5 e o peso 1,0 aos
elementos localizados na quinta coluna e nas primeira e segunda linhas,
respectivamente, da matriz NOTASEPESOS, teremos:
NOTASEPESOS[1,5] 8.5
NOTASEPESOS[2,5] 1.0
MÉDIA =
NOTA1 ∗ PESO1 + ⋯ + NOTAn ∗ PESOn
PESO1 + ⋯ + PESOn
Você sabe o que é uma média ponderada? Essa
grandeza matemática é bastante utilizada quando se
quer obter uma média onde alguns números devem
ter mais importância que outros. Assim, no caso das
oito notas obtidas pelo aluno, sempre as finais devem
valer o dobro das anteriores, por isso precisamos
aplicar a média ponderada ao invés da média
aritmética.
EXPLICANDO MELHOR
Lógica de Programação| Izabelly Morais e Max Azevedo | 11
1.2 Problemas envolvendo matrizes
Retomando o nosso exemplo anterior, vamos incrementar o algoritmo
aplicando a média ponderada ao invés da aritmética? Para isto
precisamos definir a matriz NOTASEPESOS para armazenar as oito notas
na primeira linha e os oito pesos das respectivas notas na segunda linha.
Observe atentamente a lógica utilizada e tente identificar pontos de
melhoria neste algoritmo proposto.
ALGORITMO
VAR
IND: INTEIRO
MED, PESO: REAL
NOTASEPESOS: VETOR [1..2, 1..8] DE REAL
PARA IND DE 1 ATÉ 8 FAÇA
LEIA NOTASEPESOS [1, IND]
LEIA NOTASEPESOS [2, IND]
MED MED + NOTASEPESOS [1, IND] * NOTASEPESOS [2, IND]
PESO PESO + NOTASEPESOS [2, IND]
FIMPARA
ESCREVA “A média ponderada é: ”, MED/PESO
FIMALGORITMO
Exemplo 1 - O algoritmo para cálculo de média ponderada usando matriz em vez de vetores.Sendo uma variável homogênea, a matriz não pode ter
elementos de diferentes tipos. Em outras palavras, uma
vez declarada como numérica inteira, todos os seus
elementos só poderão receber valores numéricos inteiros.
No entanto, em algumas linguagens de programação,
como o Visual Basic, as matrizes são tratadas como
variáveis heterogêneas, podendo receber dados de
diferentes tipos para seus elementos.
IMPORTANTE
Lógica de Programação| Izabelly Morais e Max Azevedo | 12
Vamos fazer pequenas adaptações para testar no VisuALG?
Figura 1 - Exemplo 1 em VisuALG. Fonte: o autor.
Executando o algoritmo no VisuALG, obteremos o resultado ilustrado na
figura 2 (ao lado). Como podemos observar, o laço que implementamos
pedirá a nota e o peso da nota a cada looping. Note ainda que utilizamos
duas variáveis acumuladoras, uma para a soma dos produtos entre as
notas e seus respectivos pesos, e a outra somente para acumular a soma
dos pesos. No final do laço, a média pôde ser obtida dividindo o
acumulador MED pelo PESO.
Para visualizar o conteúdo da matriz que acabamos de alimentar com
esse algoritmo, basta olhar para o painel localizado no canto superior
direito da tela do VisuALG. Lá você poderá conferir o valor inserido em
cada uma das células.
Figura 2 - Resultado do teste. Fonte: o autor.
Lógica de Programação| Izabelly Morais e Max Azevedo | 13
Figura 3 - Painel de monitoramento das variáveis de memória. Fonte: o autor.
Os dois últimos problemas-exemplos que
algoritmizamos utilizaram variáveis compostas
(vetores e matrizes) como meio de armazenar vários
dados sem perdê-los. Porém, a cada digitação de
dados para os elementos dessas variáveis nós
acumulamos seus valores para, somente depois,
calcularmos a média.
Poderíamos não ter usado vetores e matrizes para
resolver os problemas anteriores?
A resposta é sim, uma vez que não recorremos
posteriormente aos conteúdos dos elementos do vetor ou
da matriz. No entanto, para processar os dados digitados
após o término do laço, vetores e matrizes são sim
importantes, pois sem eles os dados digitados serão
atualizados a cada novo looping.
REFLITA
Lógica de Programação| Izabelly Morais e Max Azevedo | 14
Considerações Finais
SAIBA MAIS:
Lembra do material que recomendamos na última aula? Além de um
aprofundamento em vetores, ali também há referência a matrizes.
Portanto, retome este material e estude mais sobre matrizes:
http://www.ouropreto.ifmg.edu.br/tp/slides/03-vetor-e-matriz (Acesso
em 22/10/2017).
Atividades de Autoaprendizagem
ATIVIDADES:
Pronto para consolidar seus conhecimentos? Leia atentamente o
enunciado de sua atividade de autoaprendizagem proposta para esta
aula. Se você está fazendo o seu curso presencialmente, é só abrir o
seu caderno de atividades. Se você estiver cursando na modalidade de
EAD (Educação a Distância), acesse a sua trilha de aprendizagem no seu
ambiente virtual e realize a atividade de modo online. Você pode
desenvolver esta atividade sozinho ou em parceria com seus colegas de
turma. Dificuldades? Poste suas dúvidas no fórum de discussões em seu
ambiente virtual de aprendizagem. Concluiu a sua atividade? Submeta o
resultado em uma postagem diretamente em seu ambiente virtual de
aprendizagem e boa sorte!
Questionário Avaliativo
TESTANDO:
Chegou a hora de você provar que aprendeu tudo o que foi abordado ao
longo desta aula. Para isto, leia e resolva atentamente as questões do
seu caderno de atividades. Se você estiver fazendo este curso a
distância, acesse o QUIZ (Banco de Questões) em seu ambiente virtual
de aprendizagem.
http://www.ouropreto.ifmg.edu.br/tp/slides/03-vetor-e-matriz
Lógica de Programação| Izabelly Morais e Max Azevedo | 15
Bibliografia
LOPES, A. (22 de Out de 2017). Vetores e Martrizes - IFMG - Campus Ouro Preto.
Fonte: IFMG - Instituto Federal de Minas Gerais:
http://www.ouropreto.ifmg.edu.br/tp/slides/03-vetor-e-matriz
Lógica de Programação| Izabelly Morais e Max Azevedo | 16
Grupo SER Educacional | Lógica de Programação 1
LÓGICA DE PROGRAMAÇÃO
Lógica de Programação
IZABELLY MORAIS E MAX AZEVEDO
ARQUIVOS DE DADOS
AULA 14
Diretor Executivo
DAVID LIRA STEPHEN BARROS
Direção Editorial
ANDRÉA CÉSAR PEDROSA
Projeto Gráfico
MANUELA CÉSAR DE ARRUDA
Autor
IZABELLY MORAIS E MAX AZEVEDO
Desenvolvedor
CAIO BENTO GOMES DOS SANTOS
O Autor
Izabelly Morais de Morais
Olá. Meu nome é Izabelly Morais. Sou licenciada em Ciência da
Computação pela Universidade Federal da Paraíba (UFPB), e mestre em
Ciência da Computação com ênfase em Engenharia de Software e
Linguagens de Programação pela Universidade Federal de Pernambuco
(UFPE). Leciono como professora formadora no Instituto Federal de
Pernambuco (IFPE) e na Faculdade Pitágoras (João Pessoa/PB), onde
tenho a oportunidade de transmitir minha experiência na área de
tecnologia e educação.
Max André de Azevêdo Silva
Olá. Meu nome é Max Azevêdo Si lva. Sou formado em Licenciatura em
Ciência da Computação, pela Universidade Federal da Paraíba, e
mestrando em Ciência da Computação com ênfase em Engenharia de
Software pela Universidade Federal da Paraíba. Possuo experiência na
área de desenvolvimento de sistemas web, mobile e jogos eletrônicos.
Atualmente atuo como Analista de Sistemas.
A possibilidade de expor nossos conhecimentos adquiridos ao longo dos
anos é fantástica! Por isso fomos convidados pela Editora Telesapiens a
integrar seu elenco de autores independentes. Estamos muito felizes em
poder ajudar você nesta fase de muito estudo e trabalho. Conte conosco!
IZABELLY MORAIS E MAX AZEVEDO
“
Iconográficos
Olá. Meu nome é Manuela César de Arruda. Sou o responsável pelo
projeto gráfico de seu material. Esses ícones irão aparecer em sua trilha
de aprendizagem toda vez que:
INTRODUÇÃO
para o início do
desenvolvimento de
uma nova
competência;
DEFINIÇÃO
houver necessidade de
se apresentar um novo
conceito;
NOTA
quando forem
necessários
observações ou
complementações
para o seu
conhecimento;
IMPORTANTE
as observações
escritas tiveram
que ser priorizadas
para você;
EXPLICANDO
MELHOR
algo precisa ser
melhor explicado ou
detalhado;
VOCÊ SABIA?
curiosidades e
indagações lúdicas
sobre o tema em
estudo, se forem
necessárias;
SAIBA MAIS
textos, referências
bibliográficas e links
para aprofundamento
do seu conhecimento;
REFLITA
se houver a necessidade
de chamar a atenção
sobre algo a ser refletido
ou discutido sobre;
ACESSE
se for preciso acessar
um ou mais sites
para fazer download,
assistir vídeos, ler
textos, ouvir podcast;
RESUMINDO
quando for preciso se
fazer um resumo
acumulativo das
últimas abordagens;
ATIVIDADES
quando alguma
atividade de
autoaprendizagem for
aplicada;
TESTANDO
quando o
desenvolvimento de
uma competência for
concluído e questões
forem explicadas;
Sumário
1 ARQUIVOS DE DADOS ............................................................................................. 6
1.1 Conceito de arquivos de dados .............................................................................. 6
1.2 Instruções de manipulação de arquivos de dados ..................................................9
1.2.1 Abertura de arquivos .............................................................................. 10
1.2.2 Criação de arquivos ................................................................................ 11
1.2.3 Leitura de registros ................................................................................ 11
1.2.4 Gravação de registros ............................................................................. 12
1.2.5 Regravação de registros .......................................................................... 13
1.2.6 Deleção de registros ............................................................................... 14
Considerações Finais ................................................................................................ 16
Atividades de Autoaprendizagem .............................................................................. 16
Questionário Avaliativo ............................................................................................ 16
Bibliografia .............................................................................................................. 17
Lógica de Programação| Izabelly Morais e Max Azevedo | 6
1 Arquivos de dados
INTRODUÇÃO:
Finalmente chegamos ao ponto de desenvolvermos algoritmos bem
próximos à realidade que teremos no mundo do trabalho. Praticamente
todas as aplicações comerciais consistem na leitura e atualização de
arquivos de dados. Afinal, é lá onde as informações são a rmazenadas em
caráter definitivo, uma vez que variáveis de memória, vetores e matrizes
se apagam quando a execução de um programa é encerrada. Ao longo
desta aula, iremos estudar como podemos processar dados e gerar
informações a partir do meio físico onde elas estarão armazenadas.
1.1 Conceito de arquivos de dados
Os arquivos de dados podem ser entendidos como uma evolução das
matrizes. Basicamente três características diferem uns das outras:
1. Enquanto as matrizes são declaradas com tamanho fixo, sendo -lhes
atribuídas uma quantidade finita de linhas e colunas, os arquivos de
dados não possuem um tamanho previamente definido , sendo
literalmente elásticos.
2. Enquanto as matrizes são estruturas de dados homogêneas, os
arquivos de dados são estruturas heterogêneas, ou seja, podem
armazenar dados de diferentes tipos.
3. As matrizes são estruturas de dados voláteis, armazenadas na
memória RAM, enquanto os arquivos residem na memória auxiliar.
OBJETIVO:
Ao término desta aula você será capaz de trabalhar com arquivos de dados
na algoritmização das soluções comerciais mais corriqueiras .
Lógica de Programação| Izabelly Morais e Max Azevedo | 7
A forma de organização dos arquivos de dados é semelhante à das
matrizes, ou seja, os dados são organizados por registros (equivalentes às
linhas da matriz) e campos de dados (equivalentes às colunas da matriz).
Diferentemente das matrizes, os dados armazenados em um arquivo não
são referenciados por linha e coluna, mas sim pelo nome do campo de
dado que o contém. Este campo de dado se repete em todos os registros
do arquivo, e o dado acessado sempre deve ser referenciado pelo nome
do campo atinente ao registro corrente.
Pelo que explicamos até o momento, percebemos o surgimento de
algumas novas definições, além da de Arquivo de Dados:
Arquivos de dados são estruturas heterogêneas, capazes
de armazenar um número ilimitado de dados, dados esses
que são organizados por registros e campos.
DEFINIÇÃO
Ao acessar o telefone de um aluno em um arquivo de
dados intitulado ALUNOS, primeiramente o arquivo deve
ter todos os seus registros lidos até chegar ao aluno
desejado. Feito isto, o telefone daquele aluno estará
contido no campo de dado de nome TELEFONE, por
exemplo. Se o próximo registro for lido, o conteúdo do
campo de dado TELEFONE não mais será o do aluno
anterior, mas sim o do aluno corrente.
EXPLICANDO MELHOR
Lógica de Programação| Izabelly Morais e Max Azevedo | 8
A tabela a seguir ilustra um exemplo de arquivo de dados, com a
indicação das definições que acabamos de enunciar.
.
MATRIC NOME MEDIA TELEFONE
1 20171001 JOSÉ ADALBERTO FARIAS 8,75 (41)98765-8703
2 20171002 CAMILA FROGGUER SHRINK 7,25 (41)99887-0944
3 20171003 AMÉLIA BARROS VIEIRA 6,50 (41)99776-1234
4 20171004 ZÉLIA DO AMARAL PINHEIROS 4,75 (41)98807-7717
5 20171005 CYNTHIA RHODES 9,25 (41)99833-3344
*
Tabela 1: Exemplo de um arquivo de dados. Fonte: o autor.
Registros de dados são as linhas de um arquivo de dados,
que devem ser lidos de forma sequencial até que um
determinado item seja localizado.
DEFINIÇÃO
Apenas um registro de um mesmo arquivo pode ser lido de
cada vez.
IMPORTANTE
Campos de dados são variáveis que assumem
automaticamente os dados do último registro lido de um
arquivo de dados.
DEFINIÇÃO
Ponteiro
FDA
Campos de
dados
Registros de
dados
Lógica de Programação| Izabelly Morais e Max Azevedo | 9
1.2 Instruções de manipulação de arquivos de dados
Agora que já entendemos o que é e para que serve um arquivo de dados,
inclusive conhecendo a sua estrutura lógica de organização, vamos
enunciar aqui alguns comandos para declaração, criação, atualização e
leitura de arquivos de dados.
Ponteiro é um termo que se usa para se referir ao registro
corrente, ou seja, ao último registro lido do arquivo de
dados. Em outras palavras, a instrução de leitura de um
registro é, na realidade, um comando para o ponteiro se
dirigir ao próximo registro.
FDA é a sigla normalmente utilizada para se referir ao
“fim do arquivo”. Trata -se de um registro imaginário
localizado logo após ao último registro gravado. Para
efeito do algoritmo, esta sigla consiste em uma função
lógica interna do interpretador, que será FALSO se o
registro corrente for um registro válido, e VERDADEIRO se
o registro corrente se tratar da marca de fim de arquivo.
DEFINIÇÃO
O VisuALG não dá suporte a arquivos de dados, pelo
menos até a versão 3, portanto, as instruções e estruturas
de dados abordadas aqui não poderão ser testadas nele.
NOTA
Lógica de Programação| Izabelly Morais e Max Azevedo | 10
1.2.1 Abertura de arquivos
Em um algoritmo, antes de se utilizar um arquivo de dados, faz -se
necessário o abrir. Para isto, podemos utilizar o comando ABRIR.
ABRIR <nome do arquivo> ALIAS <apelido do arquivo>
CAMPOS { <campo-1>, <tipo de dado do campo-1>;
<campo-2>, <tipo de dado do campo-2>; ...
<campo-N>, <tipo de dado do campo-N> }
Assim, antes de utilizar dados do arquivo de alunos que exemplificamos
anteriormente, precisamos o abrir logo no início do algoritmo, como
mostra o exemplo a seguir.
ALGORITMO
ABRIR “ALUNOS.dat” ALIAS ALUNOS
CAMPOS { MATRIC, CARACTERE;
NOME, CARACTERE;
MEDIA, REAL;
TELEFONE; CARACTERE }
FIMALGORITMO
Exemplo 1 - Algoritmo que abre um arquivo.
Note que a cláusula ALIAS permite que se atribua um apelido ao arquivo
que se deseja abrir. Com isto não há necessidade de nos referirmos ao
nome completo do arquivo, com extensão e endereço da pasta onde se
localiza no disco rígido do computador. Depois, a cláusula CAMPOS
permite que se indique, entre chaves, todos os campos e respectivos tipos
que compõem um registro desse arquivo.
A ordem com que os campos são declarados é
importantíssima, pois se houveralguma inversão, os
dados serão trocados de um campo para outro quando um
registro desse arquivo for lido.
IMPORTANTE
Lógica de Programação| Izabelly Morais e Max Azevedo | 11
1.2.2 Criação de arquivos
Caso o arquivo que se deseja manipular não exista, ele pode ser criado
pelo comando CRIAR, utilizando a seguinte sintaxe:
CRIAR <nome do arquivo> ALIAS <apelido do arquivo>
CAMPOS { <campo-1>, <tipo de dado do campo-1>;
<campo-2>, <tipo de dado do campo-2>; ...
<campo-N>, <tipo de dado do campo-N> }
Perceba que a sintaxe é a mesma do comando ABRIR. É que, neste caso,
uma vez criado um arquivo ele estará automaticamente aberto e
disponível para acesso.
ALGORITMO
CRIAR “ALUNOS.dat” ALIAS ALUNOS
CAMPOS { MATRIC, CARACTERE;
NOME, CARACTERE;
MEDIA, REAL;
TELEFONE; CARACTERE }
FIMALGORITMO
Exemplo 2 - Algoritmo que cria um arquivo.
1.2.3 Leitura de registros
Como dissemos anteriormente, ler o registro de um arquivo é
simplesmente posicionar o ponteiro de leitura para cima de um deles. Ao
abrir um arquivo, o ponteiro estará posicionado no primeiro registro.
Assim, os seguintes comandos auxiliam no posicionamento do ponteiro
de leitura, a saber:
PULE <número de registros a serem saltados> DE <alias do arquivo>
PULE PARA PRIMEIRO DE <alias do arquivo>
PULE PARA ÚLTIMO DE <alias do arquivo>
Para compreendermos melhor este comando, vejamos o exemplo de
algoritmo a seguir.
Lógica de Programação| Izabelly Morais e Max Azevedo | 12
ALGORITMO
ABRIR “ALUNOS.dat” ALIAS ALUNOS
CAMPOS { MATRIC, CARACTERE;
NOME, CARACTERE;
MEDIA, REAL;
TELEFONE; CARACTERE }
ENQUANTO NÃO FDA(“ALUNOS”) FAÇA
ESCREVA NOME, MEDIA
PULE 1 DE ALUNOS
FIMENQUANTO
FIMALGORITMO
Exemplo 3 - Algoritmo que abre, lê e lista o conteúdo de um arquivo até o fim.
Observe que o laço ENQUANTO FAÇA estará sendo processado enquanto
não seja atingido o final do arquivo.
Em outras palavras, enquanto a função lógica FDA() não for verdadeira, o
laço estará em looping.
1.2.4 Gravação de registros
Quer o arquivo esteja vazio, ou seja, FDA() é verdadeira logo ao abrir o
arquivo, quer tenha sido atingido o final do arquivo, poderemos incluir um
novo registro. O comando que permite esta instrução é o GRAVE .
GRAVE EM <alias do arquivo>
Este comando fará com que seja adicionado um novo registro ao arquivo
descrito na cláusula <alias do arquivo>. Os dados que serão gravados
nesse registro serão aqueles contidos ou atribuídos aos seus campos de
dados.
A função FDA() é interna da linguagem, e deve ser
utilizada em estruturas condicionais e/ou repetitivas para
testar se já chegou o final do arquivo.
NOTA
Lógica de Programação| Izabelly Morais e Max Azevedo | 13
Por exemplo: se acabamos de ler um determinado registro e, de repente,
instruímos que seja executado o comando GRAVE, os dados do último
registro lido serão replicados naquele que está sendo incluído no arquivo.
Para que isto não ocorra, antes de executar o comando GRAVE, devem ser
movidos novos dados aos campos de dados declarados no algoritmo,
como mostra o exemplo a seguir.
ALGORITMO
ABRIR “ALUNOS.dat” ALIAS ALUNOS
CAMPOS { MATRIC, CARACTERE;
NOME, CARACTERE;
MEDIA, REAL;
TELEFONE; CARACTERE }
LEIA MATRIC, NOME, MEDIA, TELEFONE
ENQUANTO MATRIC <> “99999999” FAÇA
GRAVE EM ALUNOS
LEIA MATRIC, NOME, MEDIA, TELEFONE
FIMENQUANTO
FIMALGORITMO
Exemplo 4 - Algoritmo que inclui um registro no arquivo ALUNOS.
No exemplo acima, começamos por abrir o arquivo “ALUNOS.dat”,
apelidado de ALUNOS. Feito isto, iniciamos a digitação dos dados de um
novo aluno nos campos MATRIC, NOME, MEDIA e TELEFONE. Até aqui
esses dados haviam ficado apenas na memória, até que o comando
GRAVE foi executado, ordenando que todos os dados atribuídos àqueles
campos fossem gravados.
1.2.5 Regravação de registros
Vimos que o comando GRAVE adiciona um novo registro ao arquivo . Mas e
se quisermos simplesmente alterar os dados de um registro?
REGRAVE EM <alias do arquivo>
O comando REGRAVE transfere os dados contidos nos campos
armazenados em memória para o registro corrente. Vamos analisar como
isto ocorre?
ALGORITMO
ABRIR “ALUNOS.dat” ALIAS ALUNOS
CAMPOS { MATRIC, CARACTERE;
Lógica de Programação| Izabelly Morais e Max Azevedo | 14
NOME, CARACTERE;
MEDIA, REAL;
TELEFONE; CARACTERE }
VAR MAT: CARACTERE
LEIA MAT
ENQUANTO MAT <> MATRIC E NÃO FDA(“ALUNOS”) FAÇA
PULE 1 DE ALUNOS
FIMENQUANTO
SE FDA(“ALUNOS”) ENTÃO
ESCREVA “Matrícula de aluno não encontrada”
SENÃO
ESCREVA “Digite os novos dados para este aluno”
LEIA NOME, MEDIA, TELEFONE
REGRAVE EM ALUNOS
FIMSE
FIMALGORITMO
Exemplo 5 - Algoritmo que consulta e altera os dados de um registro do arquivo ALUNOS.
O algoritmo que acabamos de apresentar é capaz de alterar os dados de
um determinado aluno. Para isto, note que o programa pede que seja
digitada a matrícula a ser pesquisada no arquivo.
Através de uma estrutura repetitiva ENQUANTO FAÇA, os registros do
arquivo ALUNOS começam a ser varridos enquanto não seja localizada a
matrícula procurada e não seja chegado o final do arquivo.
Ao ser localizado o registro procurado, perceba que novos dados serão
digitados pelo usuário e, em seguida, regravados no registro corrente.
1.2.6 Deleção de registros
Para completar as funcionalidades básicas das operações algorítmicas
envolvendo arquivos de dados, só falta conhecermos o comando DELETE.
DELETE DE <alias do arquivo>
Este comando fará com que o registro corrente seja excluído do arquivo.
Em algumas linguagens de programação, esta exclusão é apenas lógica,
ou seja, os dados permanecem gravados no arquivo e podem ser
restaurados com comandos específicos. O algoritmo abaixo é um exemplo
típico de exclusão de registros.
Lógica de Programação| Izabelly Morais e Max Azevedo | 15
ALGORITMO
ABRIR “ALUNOS.dat” ALIAS ALUNOS
CAMPOS { MATRIC, CARACTERE;
NOME, CARACTERE;
MEDIA, REAL;
TELEFONE; CARACTERE }
VAR MAT: CARACTERE
LEIA MAT
ENQUANTO MAT <> MATRIC E NÃO FDA(“ALUNOS”) FAÇA
PULE 1 DE ALUNOS
FIMENQUANTO
SE FDA(“ALUNOS”) ENTÃO
ESCREVA “Matrícula de aluno não encontrada”
SENÃO
DELETE DE ALUNOS
FIMSE
FIMALGORITMO
Exemplo 6 - Algoritmo que consulta e deleta um registro do arquivo ALUNOS.
Lógica de Programação| Izabelly Morais e Max Azevedo | 16
Considerações Finais
SAIBA MAIS:
Dissemos anteriormente que o VisuALG não dá suporte a operações
com arquivos de dados, no entanto, ele consegue ler e gravar
arquivos-textos. Conheça esses recursos pelo link:
http://www.ouropreto.ifmg.edu.br/tp/slides/03-vetor-e-matriz (Acesso
em 22/10/2017).
Atividades de Autoaprendizagem
ATIVIDADES:
Pronto para consolidar seus conhecimentos? Leia atentamente o
enunciado de sua atividade de autoaprendizagem proposta para esta
aula. Se você está fazendo o seu curso presencialmente, é só abrir o
seu caderno de atividades. Se você estiver cursando na moda lidade de
EAD (Educação a Distância), acesse a sua trilha de aprendizagem no seu
ambiente virtual e realize a atividade de modo online. Você pode
desenvolver esta atividade sozinho ou em parceria com seus colegas de
turma. Dificuldades? Poste suas dúvidas no fórum de discussões em seu
ambiente virtual de aprendizagem. Concluiu a sua atividade? Submeta o
resultado em uma postagem diretamente emseu ambiente virtual de
aprendizagem e boa sorte!
Questionário Avaliativo
TESTANDO:
Chegou a hora de você provar que aprendeu tudo o que foi abordado ao
longo desta aula. Para isto, leia e resolva atentamente as questões do
seu caderno de atividades. Se você estiver fazendo este curso a
distância, acesse o QUIZ (Banco de Questões) em seu ambiente virtual
de aprendizagem.
http://www.ouropreto.ifmg.edu.br/tp/slides/03-vetor-e-matriz
Lógica de Programação| Izabelly Morais e Max Azevedo | 17
Bibliografia
Apoio Informática. (23 de Out de 2017). A Linguagem de Programação do VisuAlg
- Outros Comandos . Fonte: Apoio Informática:
http://www.apoioinformatica.inf.br/produtos/item/21-outros-comandos
Lógica de Programação| Izabelly Morais e Max Azevedo | 18
Grupo SER Educacional | Lógica de Programação 1
LÓGICA DE PROGRAMAÇÃO
Lógica de Programação
IZABELLY MORAIS E MAX AZEVEDO
PROCEDIMENTOS
AULA 15
Diretor Executivo
DAVID LIRA STEPHEN BARROS
Direção Editorial
ANDRÉA CÉSAR PEDROSA
Projeto Gráfico
MANUELA CÉSAR DE ARRUDA
Autor
IZABELLY MORAIS E MAX AZEVEDO
Desenvolvedor
CAIO BENTO GOMES DOS SANTOS
O Autor
Izabelly Morais de Morais
Olá. Meu nome é Izabelly Morais. Sou licenciada em Ciência da
Computação pela Universidade Federal da Paraíba (UFPB), e mestre em
Ciência da Computação com ênfase em Engenharia de Software e
Linguagens de Programação pela Universidade Federal de Pernambuco
(UFPE). Leciono como professora formadora no Instituto Federal de
Pernambuco (IFPE) e na Faculdade Pitágoras (João Pessoa/PB), onde
tenho a oportunidade de transmitir minha experiência na área de
tecnologia e educação.
Max André de Azevêdo Silva
Olá. Meu nome é Max Azevêdo Si lva. Sou formado em Licenciatura em
Ciência da Computação, pela Universidade Federal da Paraíba, e
mestrando em Ciência da Computação com ênfase em Engenharia de
Software pela Universidade Federal da Paraíba. Possuo experiência na
área de desenvolvimento de sistemas web, mobile e jogos eletrônicos.
Atualmente atuo como Analista de Sistemas.
A possibilidade de expor nossos conhecimentos adquiridos ao longo dos
anos é fantástica! Por isso fomos convidados pela Editora Telesapiens a
integrar seu elenco de autores independentes. Estamos muito felizes em
poder ajudar você nesta fase de muito estudo e trabalho. Conte conosco!
IZABELLY MORAIS E MAX AZEVEDO
“
Iconográficos
Olá. Meu nome é Manuela César de Arruda. Sou o responsável pelo
projeto gráfico de seu material. Esses ícones irão aparecer em sua trilha
de aprendizagem toda vez que:
INTRODUÇÃO
para o início do
desenvolvimento de
uma nova
competência;
DEFINIÇÃO
houver necessidade de
se apresentar um novo
conceito;
NOTA
quando forem
necessários
observações ou
complementações
para o seu
conhecimento;
IMPORTANTE
as observações
escritas tiveram
que ser priorizadas
para você;
EXPLICANDO
MELHOR
algo precisa ser
melhor explicado ou
detalhado;
VOCÊ SABIA?
curiosidades e
indagações lúdicas
sobre o tema em
estudo, se forem
necessárias;
SAIBA MAIS
textos, referências
bibliográficas e links
para aprofundamento
do seu conhecimento;
REFLITA
se houver a necessidade
de chamar a atenção
sobre algo a ser refletido
ou discutido sobre;
ACESSE
se for preciso acessar
um ou mais sites
para fazer download,
assistir vídeos, ler
textos, ouvir podcast;
RESUMINDO
quando for preciso se
fazer um resumo
acumulativo das
últimas abordagens;
ATIVIDADES
quando alguma
atividade de
autoaprendizagem for
aplicada;
TESTANDO
quando o
desenvolvimento de
uma competência for
concluído e questões
forem explicadas;
Sumário
1 PROCEDIMENTOS ................................................................................................... 6
1.1 Conceito de procedimentos .................................................................................. 6
1.2 Passagem de parâmetros .................................................................................... 10
Considerações Finais ................................................................................................ 13
Atividades de Autoaprendizagem .............................................................................. 13
Questionário Avaliativo ............................................................................................ 13
Bibliografia .............................................................................................................. 14
Lógica de Programação| Izabelly Morais e Max Azevedo | 6
1 Procedimentos
INTRODUÇÃO:
A essa altura do campeonato você já deve estar “papando” todo e
qualquer problema com seus algoritmos, não é? Esperamos que você
tenha solucionado um montão deles. Mas, se você já resolveu alguns
daqueles bem “cabeludos”, deve ter percebido que alguns blocos de
comandos sempre se repetem de um algoritmo para outro. Em particular,
quando criamos uma série de programas de um mesmo sistema,
podemos identificar claramente essas sequências redundantes de
comandos. Para simplificar e encurtar algoritmos extensos e complexos,
podemos lançar mão de procedimentos. É o que chamamos de
modulação de algoritmos, e é isto que iremos estudar ao longo desta
aula.
1.1 Conceito de procedimentos
Você já teve a sensação de estar codificando várias vezes as mesmas
instruções, para fazer as mesmas coisas, em diferentes algoritmos? E se
pudéssemos substituir essas instruções redundantes por uma única
instrução? É isto que chamamos de procedimentos, também
denominados de sub-rotinas.
OBJETIVO:
Ao término desta aula você será capaz de modular algoritmos por meio de
procedimentos.
Procedimentos ou sub-rotinas são conjuntos de instruções
que podem ser invocados a partir de pontos distintos de
um algoritmo.
DEFINIÇÃO
Lógica de Programação| Izabelly Morais e Max Azevedo | 7
Mas os procedimentos nem sempre são utilizados apenas para reduzir o
nível de redundância das instruções em um programa. Eles também
podem servir como subprogramas, a exemplo do que ocorre com sistemas
cadastrais, como o ilustrado na figura a seguir.
Figura 1 - Diagrama de um sistema cadastral. Fonte: o autor.
No exemplo ilustrado acima, temos um programa-mestre intitulado
“Menu”. Espera-se que este programa ofereça a opção de o usuário digitar
um número para selecionar a ação desejada, que pode ser:
1. Cadastramento;
2. Listagem;
3. Consulta; ou
4. FIM.
Dependendo da opção que este usuário digitar, um entre três
procedimentos pode ser executado. Neste caso, tais procedimentos
funcionarão como subprogramas, ou seja, o fluxo de execução das linhas
MENU
CADASTRAMENTO
LISTAGEM
CONSULTA
INÍCIO
FIM
Lógica de Programação| Izabelly Morais e Max Azevedo | 8
de comando do programa “Menu” será desviado para um desses
subprogramas, somente retornando quando este chegar a seu término.
Para exemplificar melhor o uso dos procedimentos, vamos visualizar
como ficaria o algoritmo “Menu” no contexto deste pequeno sistema?
ALGORITMO
VAR
OPC: INTEIRO
ENQUANTO OPC <> 4 FAÇA
ESCREVA “Escolha a sua opção : ”
ESCREVA “ 1) Cadastramento; ”
ESCREVA “ 2) Consulta;”
ESCREVA “ 3) Listagem; ”
ESCREVA “ 4) Encerrar; ”
LEIA OPC
SE OPC = 1 ENTÃO
CADASTRAMENTO
SENÃO
SE OPC = 2 ENTÃO
CONSULTA
SENÃO
SE OPC = 3 ENTÃO
LISTAGEM
FIMSE
FIMSE
FIMSE
FIMENQUANTO
FIMALGORITMO
Exemplo 1 - O algoritmo para seleção de procedimentos, ou menu.
Perceba que, a cada opção digitada, um procedimento é chamado a
execução. Após seu fluxo lógico de instruções ser executado, este
procedimento devolverá o controle de execução ao programa-mestre que
o invocou.
CADASTRAMEN
TO
CONSULTA
LISTAGEM
Mas, o que aconteceria se não tivéssemos o recurso
dos procedimentos a nossa disposição?
Simplesmente, o programa “Menu” ficaria excessivamente
longo, dificultando a sua compreensão. E o que é pior:
toda vez que tivéssemos a necessidade de executar as
instruções de uma das opções digitadas, teríamos que
replicar aquelas mesmas instruções em outra parte desse
mesmo programa.
REFLITA
Lógica de Programação| Izabelly Morais e Max Azevedo | 9
A linha de comando imediatamente após a chamada deste procedimento
será executada, o que, neste caso, fará com que uma nova opção seja
requisitada, até que um “4” seja digitado para finalizar o programa.
Vamos adaptar este algoritmo para o formato do VisuALG?
Os três procedimentos chamados pelo
algoritmo estão salientados em fundo
amarelo na figura ao lado. Perceba que
cada um deles declara uma variável de
nome MENS. Esta variável é privada, ou
seja, só tem validade para efeito do
procedimento que a declara. Isto
significa que ela não pode ser tratada
pelo algoritmo principal.
A recíproca não é verdadeira, ou seja, a
variável OPC, declarada e alimentada no
algoritmo principal, foi tratada por cada
um dos procedimentos. Neste caso,
dizemos que a variável OPC é uma
variável global, isto é, tem validade em
todos os procedimentos que porventura
forem criados pelo programa principal.
Figura 2 - Algoritmo-exemplo em VisuALG. Fonte: o autor.
Diferentemente de muitas linguagens, o VisuALG exige
que os procedimentos sejam declarados e codificados
dentro do próprio programa que os invoca, logo no início
do algoritmo, após a declaração das variáveis e antes da
cláusula INÍCIO. Para facilitar nossos testes, não vamos
algoritmizar os três procedimentos agora, conforme seus
objetivos ensejam. Em vez disto, vamos escrever uma
breve mensagem, só para sinalizar que eles realmente
estão sendo executados corretamente. Mais adiante você
pode completar suas codificações. Combinado?
IMPORTANTE
Lógica de Programação| Izabelly Morais e Max Azevedo | 10
Ao executar este algoritmo, você visualizará o seguinte:
Figura 3 - Monitoramento do teste do algoritmo-exemplo 1. Fonte: o autor.
1.2 Passagem de parâmetros
Além de poderem ser chamados à execução a partir de qualquer ponto de
um algoritmo, os procedimentos também podem receber instruções para
aplicarem um determinado processamento sobre alguns dados
repassados pelo programa principal. A esses dados repassados damos o
nome de parâmetros.
Para exemplificarmos o uso de parâmetros em um procedimento, vamos
retomar o programa-exemplo anteriormente ilustrado. Imagine que o
procedimento LISTAGEM apresente duas opções de relatório, e que,
dependendo do parâmetro repassado pelo programa-principal, o relatório
poderá ser um ou outro.
Parâmetros de um procedimento são dados repassados a
ele pelo programa principal, os quais ocupam variáveis
especificamente declaradas para este fim.
DEFINIÇÃO
Lógica de Programação| Izabelly Morais e Max Azevedo | 11
Bem, primeiramente, vamos codificar esta solução considerando que a
opção será pelo primeiro relatório. Neste caso, perceba que o algoritmo a
seguir está repassando ao procedimento LISTAGEM um parâmetro
numérico igual a 1.
Como você pode observar, este parâmetro está ocupando uma variável de
memória intitulada OPCREL, que está sendo tratada pelo comando SE
presente neste procedimento.
Figura 4 - O mesmo algoritmo, porém, passando parâmetro para o procedimento LISTAGEM. Fonte: o
autor.
Lógica de Programação| Izabelly Morais e Max Azevedo | 12
Observe que o parâmetro passado ao procedimento LISTAGEM foi um
número inteiro, exatamente como declarado internamente dentro do
procedimento LISTAGEM. Se tivéssemos passado uma constante literal,
como “1” (entre aspas), teria ocorrido um erro de execução do programa.
Da mesma forma que um parâmetro pode ser repassado em forma de
constante, este também pode ser uma variável de memória.
Veja o resultado da execução deste algoritmo no VisuALG:
Figura 5 - Teste de execução do programa modificado, passando parâmetro ao procedimento
LISTAGEM. Fonte: o autor.
Lógica de Programação| Izabelly Morais e Max Azevedo | 13
Considerações Finais
SAIBA MAIS:
Acesse a documentação oficial do VisuALG no que concerne à sintaxe
da chamada e declaração de um procedimento, disponível pelo link:
http://www.apoioinformatica.inf.br/produtos/ item/17-procedimentos
(Acesso em 23/10/2017).
Atividades de Autoaprendizagem
ATIVIDADES:
Pronto para consolidar seus conhecimentos? Leia atentamente o
enunciado de sua atividade de autoaprendizagem proposta para esta
aula. Se você está fazendo o seu curso presencialmente, é só abrir o
seu caderno de atividades. Se você estiver cursando na moda lidade de
EAD (Educação a Distância), acesse a sua trilha de aprendizagem no seu
ambiente virtual e realize a atividade de modo online. Você pode
desenvolver esta atividade sozinho ou em parceria com seus colegas de
turma. Dificuldades? Poste suas dúvidas no fórum de discussões em seu
ambiente virtual de aprendizagem. Concluiu a sua atividade? Submeta o
resultado em uma postagem diretamente em seu ambiente virtual de
aprendizagem e boa sorte!
Questionário Avaliativo
TESTANDO:
Chegou a hora de você provar que aprendeu tudo o que foi abordado ao
longo desta aula. Para isto, leia e resolva atentamente as questões do
seu caderno de atividades. Se você estiver fazendo este curso a
distância, acesse o QUIZ (Banco de Questões) em seu ambiente virtual
de aprendizagem.
http://www.apoioinformatica.inf.br/produtos/item/17-procedimentos
Lógica de Programação| Izabelly Morais e Max Azevedo | 14
Bibliografia
Apoio Informática. (23 de Out de 2017). A Linguagem de Programação do VisuAlg
- Outros Comandos . Fonte: Apoio Informática:
http://www.apoioinformatica.inf.br/produtos/item/21-outros-comandos
Lógica de Programação| Izabelly Morais e Max Azevedo | 15
Grupo SER Educacional | Lógica de Programação 1
LÓGICA DE PROGRAMAÇÃO
Lógica de Programação
IZABELLY MORAIS E MAX AZEVEDO
FUNÇÕES
AULA 16
Diretor Executivo
DAVID LIRA STEPHEN BARROS
Direção Editorial
ANDRÉA CÉSAR PEDROSA
Projeto Gráfico
MANUELA CÉSAR DE ARRUDA
Autor
IZABELLY MORAIS E MAX AZEVEDO
Desenvolvedor
CAIO BENTO GOMES DOS SANTOS
O Autor
Izabelly Morais de Morais
Olá. Meu nome é Izabelly Morais. Sou licenciada em Ciência da
Computação pela Universidade Federal da Paraíba (UFPB), e mestre em
Ciência da Computação com ênfase em Engenharia de Software e
Linguagens de Programação pela Universidade Federal de Pernambuco
(UFPE). Leciono comoprofessora formadora no Instituto Federal de
Pernambuco (IFPE) e na Faculdade Pitágoras (João Pessoa/PB), onde
tenho a oportunidade de transmitir minha experiência na área de
tecnologia e educação.
Max André de Azevêdo Silva
Olá. Meu nome é Max Azevêdo Si lva. Sou formado em Licenciatura em
Ciência da Computação, pela Universidade Federal da Paraíba, e
mestrando em Ciência da Computação com ênfase em Engenharia de
Software pela Universidade Federal da Paraíba. Possuo experiência na
área de desenvolvimento de sistemas web, mobile e jogos eletrônicos.
Atualmente atuo como Analista de Sistemas.
A possibilidade de expor nossos conhecimentos adquiridos ao longo dos
anos é fantástica! Por isso fomos convidados pela Editora Telesapiens a
integrar seu elenco de autores independentes. Estamos muito felizes em
poder ajudar você nesta fase de muito estudo e trabalho. Conte conosco!
IZABELLY MORAIS E MAX AZEVEDO
“
Iconográficos
Olá. Meu nome é Manuela César de Arruda. Sou o responsável pelo
projeto gráfico de seu material. Esses ícones irão aparecer em sua trilha
de aprendizagem toda vez que:
INTRODUÇÃO
para o início do
desenvolvimento de
uma nova
competência;
DEFINIÇÃO
houver necessidade de
se apresentar um novo
conceito;
NOTA
quando forem
necessários
observações ou
complementações
para o seu
conhecimento;
IMPORTANTE
as observações
escritas tiveram
que ser priorizadas
para você;
EXPLICANDO
MELHOR
algo precisa ser
melhor explicado ou
detalhado;
VOCÊ SABIA?
curiosidades e
indagações lúdicas
sobre o tema em
estudo, se forem
necessárias;
SAIBA MAIS
textos, referências
bibliográficas e links
para aprofundamento
do seu conhecimento;
REFLITA
se houver a necessidade
de chamar a atenção
sobre algo a ser refletido
ou discutido sobre;
ACESSE
se for preciso acessar
um ou mais sites
para fazer download,
assistir vídeos, ler
textos, ouvir podcast;
RESUMINDO
quando for preciso se
fazer um resumo
acumulativo das
últimas abordagens;
ATIVIDADES
quando alguma
atividade de
autoaprendizagem for
aplicada;
TESTANDO
quando o
desenvolvimento de
uma competência for
concluído e questões
forem explicadas;
Sumário
1 FUNÇÕES ............................................................................................................... 6
1.1 Conceito de função ............................................................................................... 6
1.2 Declaração de uma função .................................................................................... 8
Considerações Finais ................................................................................................ 12
Atividades de Autoaprendizagem .............................................................................. 12
Questionário Avaliativo ............................................................................................ 12
Bibliografia .............................................................................................................. 13
Lógica de Programação| Izabelly Morais e Max Azevedo | 6
1 Funções
INTRODUÇÃO:
Até aqui você já deve ter utilizado várias funções, inúmeras vezes, para
solucionar os mais diversos tipos de problemas, não é verdade? Mas, e se
aparecesse um novo problema para o qual não houvesse uma função
específica como solução? Pensando nisto, a maioria das linguagens de
programação oferece o recurso da criação de funções externas à
linguagem, também chamadas de funções internas ao programa. O termo
“interna” ou “externa”, portanto, depende do referencial.
1.1 Conceito de função
Já que aprendemos como funcionam os procedimentos (ou sub-rotinas),
ficou mais fácil entendermos o que vem a ser função. Podemos afirmar
que se trata da mesma coisa, com uma diferença básica: os
procedimentos não recebem parâmetros, mas não retornam nada. Já as
funções retornam algo em função dos parâmetros recebidos.
OBJETIVO:
Ao término desta aula você será capaz de criar e utilizar funções externas à
linguagem para solucionar problemas específicos.
Funções são conjuntos de instruções que podem ser
invocados a partir de pontos distintos de um algoritmo,
cuja finalidade é retornar um valor como resultado do
processamento dos parâmetros recebidos por elas.
DEFINIÇÃO
Lógica de Programação| Izabelly Morais e Max Azevedo | 7
Para exemplificarmos, vamos imaginar que precisemos criar uma função
que receba três parâmetros (também chamados de argumentos):
Um número, uma cadeia de caracteres e um sinal lógico (VERDADEIRO ou
FALSO). Claro que essas constantes também podem ser variáveis, a
critério do programador. O primeiro argumento, o número, deve significar
a quantidade de caracteres que deve ser extraída de uma cadeia de
caracteres, informado como segundo parâmetro. Por fim, se o terceiro
argumento for verdadeiro, essa parte da cadeia extraída deverá vir em
maiúsculo, e, se for falso, em minúsculo. A figura a seguir traz alguns
exemplos de parâmetros que entram na função e os respectivos retornos.
Figura 1 - Diagrama de um sistema cadastral. Fonte: o autor.
No exemplo ilustrado acima, temos vários programas que chamam uma
mesma função, passando diferentes dados como parâmetros e obtendo,
diferentes resultados como retorno. Mas, como esses parâmetros são
passados? Como o retorno é comunicado? Veja o exemplo a seguir.
ALGORITMO “PROGRAMA1”
VAR PALAV: CARACTERE
TAMANHO, OPC: INTEIRO
PROGRAMA1
FUNÇÃO1 (x, y, z)
PROGRAMA2
PROGRAMA3
1, “palavra”, VERDADEIRO
“P”
1, “palavra”,
FALSO
“p”
3, “palavra”,
FALSO
“pal”
Lógica de Programação| Izabelly Morais e Max Azevedo | 8
ESCREVA “Digite uma palavra, a quantidade de caracteres da esquerda
para a direita A extrair, e o número 1 quiser ver em maiúsculo, ou 2 se
minúsculo: ”
LEIA PALAV, TAMANHO, OPC
SE OPC = 1 ENTÃO
ESCREVA FUNÇÃO1(TAMANHO, PALAV, VERDADEIRO)
SENÃO
ESCREVA FUNÇÃO1(TAMANHO, PALAV, FALSO)
FIMSE
FIMALGORITMO
Exemplo 1
Perceba que o algoritmo do exemplo 1 inseriu a função diretamente
dentro da sintaxe do comando ESCREVA, o que significa dizer que esta
função retorna uma cadeia de caracteres que pode ser impressa
diretamente por este comando.
Se assim o quiséssemos, poderíamos, ao invés de escrever, atribuir o
resultado da FUNÇÃO1 diretamente a uma variável, ou inseri -la em um
comando ou estrutura condicional.
1.2 Declaração de uma função
Assim como os procedimentos devem ser declarados logo no início do
algoritmo, também as funções assim o devem. Em VisuALG, por exemplo,
as funções devem ser declaradas e codificadas dentro do próprio
programa que as invoca, logo no início do algoritmo, após a declaração
das variáveis e antes da cláusula INÍCIO.
A sintaxe da cláusula de declaração de função é a seguinte:
FUNCAO <nome-de-função> [(<sequência-de-declarações-de-
parâmetros>)]: <tipo-de-dado>
// Seção de Declarações Internas
INICIO
// Seção de Comandos
FIMFUNCAO
Se estivéssemos lidando com um procedimento, nada
disto poderia ser feito, uma vez que uma sub-rotina não
retorna nada.
IMPORTANTE
Lógica de Programação| Izabelly Morais e Max Azevedo | 9
O <nome-de-função> obedece às mesmas regras de nomenclatura das
variáveis. A <sequência-de-declarações-de-parâmetros> é uma sequência
de cláusulas VAR, opcional, com a seguinte sintaxe:
[VAR] <sequência-de-parâmetros>: <tipo-de-dado>
As variáveis que compõem os parâmetros a serem recebidosdevem ser
separadas por ponto e vírgula. A presença (opcional) da palavra -chave
VAR indica passagem de parâmetros por referência; caso contrário, a
passagem será por valor.
Por sua vez, <sequência-de-parâmetros> é uma sequência de nomes de
parâmetros separados por vírgulas.
O valor retornado pela função será do tipo especificado na sua declaração
(logo após os dois pontos). Em alguma parte da função (de modo geral,
no seu final), este valor deve ser retornado através do comando RETORNE.
De modo análogo ao programa principal, a seção de declaraç ões internas
começa com a palavra-chave VAR, e continua com a seguinte sintaxe:
<lista-de-variáveis> : <tipo-de-dado>
Vamos a um exemplo? Que tal o mesmo que ilustramos na figura
anterior?
FUNCAO FUNCAO1 (X: INTEIRO, Y: CARACTERE, Z: LOGICO): INTEIRO
INICIO
SE Z ENTÃO
RETORNE MAIUSC(COPIA(Y; 1; X))
SENÃO
RETORNE MINUSC(COPIA(Y; 1; X))
FIMSE
FIMFUNCAO
Exemplo 2
No programa principal, teríamos as seguintes adequações para comportar
a função FUNCAO1:
ALGORITMO “PROGRAMA1”
VAR PALAV: CARACTERE
TAMANHO, OPC: INTEIRO
FUNCAO FUNCAO1 (X: INTEIRO, Y: CARACTERE, Z: LOGICO): INTEIRO
INICIO
SE Z ENTÃO
RETORNE MAIUSC(COPIA(Y; 1; X))
SENÃO
RETORNE MINUSC(COPIA(Y; 1; X))
FIMSE
FIMFUNCAO
INICIO
Lógica de Programação| Izabelly Morais e Max Azevedo | 10
ESCREVA “Digite uma palavra, a quantidade de caracteres da esquerda
para a direita A extrair, e o número 1 quiser ver em maiúsculo, ou 2 se
minúsculo: ”
LEIA PALAV, TAMANHO, OPC
SE OPC = 1 ENTÃO
ESCREVA FUNÇÃO1(TAMANHO, PALAV, VERDADEIRO)
SENÃO
ESCREVA FUNÇÃO1(TAMANHO, PALAV, FALSO)
FIMSE
FIMALGORITMO
Exemplo 3
Vamos adaptar este algoritmo para a sintaxe do VisuALG?
Adaptando o código em VisuALG, teremos:
Figura 2 - Exemplo 2 adaptado para as limitações do VisuALG. Fonte: o autor.
O resultado é o seguinte:
Mas testar este algoritmo no VisuALG, teremos que mexer
um pouco na lógica, pois o VisuALG não aceita parâmetros
de diferentes tipos em uma função. Então, para fazê-lo
funcionar, o algoritmo da função FUNCAO1 irá receber um
número no formato alfanumérico, uma palavra (assim
como já estava antes) e não mais um terceiro parâmetro.
IMPORTANTE
Lógica de Programação| Izabelly Morais e Max Azevedo | 11
Figura 3 - Resultado da execução do exemplo anterior. Fonte: o autor.
Lógica de Programação| Izabelly Morais e Max Azevedo | 12
Considerações Finais
SAIBA MAIS:
Acesse a apostila do IFCE, Iguatu/CE, que contém um manual
completo do VisuALG, disponível pelo link:
www.netsoft.inf.br/aulas/4_ECI_Introducao_a_Informatica/Visualg2_man
ual.pdf (Acesso em 24/10/2017).
Atividades de Autoaprendizagem
ATIVIDADES:
Pronto para consolidar seus conhecimentos? Leia atentamente o
enunciado de sua atividade de autoaprendizagem proposta para esta
aula. Se você está fazendo o seu curso presencialmente, é só abrir o
seu caderno de atividades. Se você estiver cursando na moda lidade de
EAD (Educação a Distância), acesse a sua trilha de aprendizagem no seu
ambiente virtual e realize a atividade de modo online. Você pode
desenvolver esta atividade sozinho ou em parceria com seus colegas de
turma. Dificuldades? Poste suas dúvidas no fórum de discussões em seu
ambiente virtual de aprendizagem. Concluiu a sua atividade? Submeta o
resultado em uma postagem diretamente em seu ambiente virtual de
aprendizagem e boa sorte!
Questionário Avaliativo
TESTANDO:
Chegou a hora de você provar que aprendeu tudo o que foi abordado ao
longo desta aula. Para isto, leia e resolva atentamente as questões do
seu caderno de atividades. Se você estiver fazendo este curso a
distância, acesse o QUIZ (Banco de Questões) em seu ambiente virtual
de aprendizagem.
http://www.netsoft.inf.br/aulas/4_ECI_Introducao_a_Informatica/Visualg2_manual.pdf
http://www.netsoft.inf.br/aulas/4_ECI_Introducao_a_Informatica/Visualg2_manual.pdf
Lógica de Programação| Izabelly Morais e Max Azevedo | 13
Bibliografia
RODRIGUES, A. (2013). Manual do VisuALG. Iguatu: IFCE. Acesso em 24 de Out de
2017, disponível em
www.netsoft.inf.br/aulas/4_ECI_Introducao_a_Informatica/Visualg2_man
ual.pdf
Lógica de Programação| Izabelly Morais e Max Azevedo | 14