Apostila de Introdução à Computação - IQ

Propaganda
Julia Sawaki Tanaka
Introdução à Computação
Sumário
1. CLASSIFICAÇÃO DOS COMPUTADORES.................................................................................................................. 1
2. SISTEMAS DE COMPUTAÇÃO................................................................................................................................ 2
2.1. SOFTWARE - CONCEITOS BÁSICOS.................................................................................................................................. 2
2.2. HARDWARE - CONCEITOS BÁSICOS................................................................................................................................. 5
3. NOÇÕES BÁSICAS DE INTERNET............................................................................................................................. 7
4. NÚMEROS BINÁRIOS............................................................................................................................................ 9
5. ALGORITMOS..................................................................................................................................................... 10
5.1. ALGORITMO NA SOLUÇÃO DE UM PROBLEMA USANDO O COMPUTADOR.............................................................................. 11
5.2. PASSOS PARA A CONSTRUÇÃO DE UM ALGORITMO........................................................................................................... 12
5.3. ALGORITMO, PROGRAMAÇÃO E RACIOCÍNIO LÓGICO......................................................................................................... 12
6. TIPOS DE DADOS................................................................................................................................................ 13
6.1. DADOS NUMÉRICOS.................................................................................................................................................. 13
6.2. DADOS LITERAIS........................................................................................................................................................ 14
6.3. DADOS LÓGICOS....................................................................................................................................................... 14
7. CONSTANTES E VARIÁVEIS.................................................................................................................................. 14
8. EXPRESSÕES....................................................................................................................................................... 14
8.1. EXPRESSÕES ARITMÉTICAS.......................................................................................................................................... 14
8.2. EXPRESSÕES RELACIONAIS........................................................................................................................................... 15
8.3. EXPRESSÕES LÓGICAS................................................................................................................................................. 16
9. FLUXOGRAMAS.................................................................................................................................................. 17
9.1. COMANDO DE ATRIBUIÇÃO........................................................................................................................................ 17
9.2. COMANDO DE ENTRADA............................................................................................................................................. 18
9.3. COMANDO DE SAÍDA................................................................................................................................................. 18
9.4. ESTRUTURA SEQUENCIAL............................................................................................................................................ 18
9.5. ESTRUTURAS CONDICIONAIS........................................................................................................................................ 19
9.5.1. Estrutura Condicional Simples.........................................................................................................................19
9.5.2. Estrutura Condicional Composta.....................................................................................................................20
9.6. ESTRUTURAS DE REPETIÇÃO........................................................................................................................................ 20
9.6.1. Estrutura de Repetição Enquanto-faça...........................................................................................................20
9.6.2. Estrutura de Repetição Repita-até..................................................................................................................21
10. PROGRAMAÇÃO............................................................................................................................................... 22
11. LINGUAGEM PASCAL......................................................................................................................................... 23
11.1. TIPOS DE DADOS..................................................................................................................................................... 24
11.2. FUNÇÕES NUMÉRICAS PRÉ-DEFINIDAS......................................................................................................................... 24
11.3. OPERADORES......................................................................................................................................................... 25
11.3.1. Operadores Aritméticos.................................................................................................................................25
11.3.2. Operadores Relacionais.................................................................................................................................25
11.3.3. Operadores Lógicos.......................................................................................................................................26
11.3.4. Prioridade dos Operadores............................................................................................................................26
11.4. ESTRUTURA GERAL DE UM PROGRAMA PASCAL ............................................................................................................ 26
11.5. DECLARAÇÃO DE VARIÁVEIS...................................................................................................................................... 26
11.6. COMANDO DE ATRIBUIÇÃO....................................................................................................................................... 27
11.7. COMANDO DE ENTRADA........................................................................................................................................... 27
11.8. COMANDO DE SAÍDA............................................................................................................................................... 27
11.9. FORMATAÇÃO........................................................................................................................................................ 27
11.10. ESTRUTURAS SEQUENCIAIS...................................................................................................................................... 28
11.11. ESTRUTURAS CONDICIONAIS.................................................................................................................................... 28
11.11.1. Estrutura Condicional Simples.....................................................................................................................28
Instituto de Química – UNESP – Araraquara
i
Introdução à Computação
11.11.2. Estrutura Condicional Composta.................................................................................................................30
11.12. ESTRUTURAS DE REPETIÇÃO.................................................................................................................................... 31
11.12.1. Estrutura de Repetição WHILE (Enquanto)................................................................................................. 31
11.12.2. Estrutura de Repetição REPEAT (Repita).....................................................................................................32
11.12.3. Estrutura de Repetição FOR (Para)..............................................................................................................32
11.13. DECLARAÇÃO DE CONSTANTES................................................................................................................................. 33
11.14. COMENTÁRIOS...................................................................................................................................................... 33
11.15. ESTRUTURAS DE DADOS......................................................................................................................................... 34
11.15.1. Variáveis Compostas Homogêneas.............................................................................................................34
11.15.1.1. Variáveis Compostas Homogêneas Unidimensionais............................................................................................ 34
11.15.1.2. Variáveis Compostas Homogêneas Bidimensionais.............................................................................................. 34
12. EXERCÍCIOS....................................................................................................................................................... 36
13. BIBLIOGRAFIA................................................................................................................................................... 44
Instituto de Química – UNESP – Araraquara
ii
Introdução à Computação
1. Classificação dos Computadores
Os computadores podem ser classificados segundo o porte e a finalidade em algumas categorias
mas estes mudam com o tempo e com a evolução tecnológica.
Computadores de mesa ou desktop: são computadores pessoais (PC - Personal Computer) que não
foram projetados para serem portáteis. Geralmente, essa classe de computadores é constituída por
um monitor, uma Unidade Central de Processamento (CPU) que fica armazenada dentro de um
gabinete do tipo mini-torre ou horizontal, um teclado e um mouse. Como esse tipo de
equipamento precisa de muito espaço para utilização, a sua demanda tem sido cada vez menor.
Para contornar essa dificuldade foi desenvolvido um modelo desktop chamado All-In-One (AIO). Os
AIO possuem a CPU integrada ao monitor, reduzindo o espaço necessário para a acomodação do
equipamento. Apesar da inovação, muitas empresas tem optado por usar modelos portáteis, que
são mais compactos, consomem menos energia, são fáceis de se transportar e possuem sistema
próprio de proteção para o caso de quedas de energia ou surtos elétricos.
Computadores portáteis:
Notebooks (Laptops), Netbooks, Ultrabooks e UltraThins. Os termos notebook e laptop são
utilizados indiferentemente para se referir aos computadores portáteis tradicionais. Netbook é
um notebook projetado para ser mais leve, menor, com "menor poder de processamento",
mais barato e com maior tempo de autonomia. Essas características fazem com que os
Netbooks sejam muito usados durante viagens, expedições ou mesmo em casa para acessos
rápidos a internet. O termo Ultrabook foi criado pela INTEL em 2011 para referenciar
notebooks com determinadas características físicas. A intenção da INTEL era a de criar uma
classe de notebooks que pudesse concorrer com os MACBook Air da Apple. Ou seja, criar
notebooks que fossem leves, finos, com grande autonomia de bateria e poder de
processamento equivalente a um notebook tradicional. Atualmente, esse termo é usado para
referenciar notebooks que possuem no máximo 2 cm de altura (o valor é medido com o
notebook fechado). Devido as limitações físicas, ultrabooks possuem restrições para a
disponibilidade de recursos comuns em notebooks. É raro encontrar um ultrabook que possua
mais de 2 portas USB, entrada ethernet para rede, entrada VGA para monitor externo e
leitor/gravador de DVD/Blu-ray. Como a altura se tornou um ponto de referência em
notebooks, então surgiu no mercado uma nova classe de computadores portáteis chamada de
UltraThin. Esse termo vem sendo usado por alguns fabricantes para descrever notebooks que
possuem no máximo 2,1 cm de altura e dispõe dos mesmos recursos de um notebook
tradicional.
O Tablet não é um computador completo, mas é um dispositivo para acesso à Internet, leitura
de livros, revistas e jornais, visualização de fotos e vídeos, agenda, calendário e jogos.
PDAs (Personal Digital Assistant) ou Handhelds: são os computadores integrados e compactos
(de bolso) que possuem acesso à Internet, recursos de GPS, vários aplicativos em versões
reduzidas e constituem uma extensão do PC e não um substituto. Os smartphones são
telefones celulares que incorporaram recursos computacionais básicos, acesso à Internet,
câmera digital, filmadora, sendo que alguns modelos incluem também GPS, processador de
textos, planilha eletrônica e outros aplicativos em versões reduzidas.
Workstations ou Estações de Trabalho: são computadores desktops mais caros e de alto
desempenho, otimizados para aplicações profissionais, usados, por exemplo, por designers
gráficos, operadores financeiors, etc. As estações de trabalho possuem telas de alta resolução,
circuitos de processamento mais rápido e mais poderoso e grande capacidade de armazenamento.
São geralmente utilizados para manipular e exibir dados complexos, tais como CAD (Computer
Instituto de Química – UNESP – Araraquara
1
Introdução à Computação
Aided Design) 2D e 3D, animação computadorizada, geoprocessamento, modelagem 3D,
desenvolvimento de games, etc.
Mainframes ou Servidores Corporativos: são computadores de grande porte, de alto custo, com
elevada velocidade e capacidade de processamento e armazenamento, destinados ao
processamento de grande volume de informações. Os mainframes são caracterizados por um
ambiente multiusuário, no qual várias pessoas utilizam o mesmo computador, ao mesmo tempo,
através dos terminais. No início, os mainframes eram grandes computadores que podiam ocupar
até um andar inteiro, mas com o passar do tempo seu tamanho foi reduzido, sua capacidade
aumentada e o termo mainframe foi sendo substituído pela expressão servidor corporativo. Esses
computadores são utilizados em ambientes comerciais e em grandes organizações como bancos,
companhias aéreas, seguradoras e administradoras de cartões de crédito, etc.
Supercomputadores: são os computadores mais poderosos, com altíssimo custo e capacidade
superior aos mainframes. Geralmente são utilizados em grandes centros de pesquisa para cálculos
sofisticados como previsão do tempo, simulação de testes nucleares, controle de voos espaciais,
etc.
2. Sistemas de Computação
A computação nasceu da ideia de auxiliar o homem nos trabalhos rotineiros e repetitivos, em geral
de cálculo e gerenciamento. Porém, com o crescente desenvolvimento tecnológico, o uso de computadores
tornou-se cada vez mais difundido em todas as áreas e hoje o computador consiste em uma ferramenta de
trabalho indispensável no dia a dia das empresas, das indústrias, das universidades, e até mesmo nas
residências.
A utilização do computador para a resolução de problemas e execução de tarefas de forma
automática traz vantagens como: rapidez de execução e confiabilidade nos resultados obtidos, pois muitos
problemas exigem cálculos sofisticados, assim como a manipulação de grande volume de dados. No
primeiro caso, o risco de erro é grande e no segundo, o trabalho torna-se árduo e entediante. O
computador elimina esses inconvenientes, pois é caracterizado pela rapidez, precisão e grande capacidade
de armazenamento de informações (textos, dados, imagens, voz, etc.).
O computador é capaz de realizar cálculos e tomar decisões lógicas em velocidades bilhões de
vezes mais rápidas que os seres humanos. Porém, o equipamento por si só não é capaz de realizar uma
simples tarefa. Para que ele realize uma determinada tarefa, é preciso que alguém descreva com detalhes
todos os passos que o equipamento deve seguir para a execução desta tarefa. Esta descrição é conhecida
como programa (software) e constitui uma importante parte do sistema de computação. O equipamento
em si, isto é, o computador, faz parte do hardware. Portanto, o hardware e o software, juntamente com o
usuário, faz parte essencial de um Sistema de Computação.
2.1. Software - Conceitos Básicos
Software ou Programa é a parte lógica que dota o equipamento físico (hardware) com a
capacidade de realizar algum trabalho. O programa nada mais é do que uma sequência de instruções
escritas em uma linguagem de programação, informando ao hardware o que fazer, e em que ordem.
Observação: Em sistemas mecânicos que usam inteligência artificial, é muito comum que o “software” seja
uma parte física do equipamento. Isso acontece porque a técnica usada para o controle
automático do aparelho é patenteada e a estrutura lógica só é conhecida pelo fabricante.
Nestes casos, a peça responsável pelo ajuste automático é comumente chamada de software.
Programas Aplicativos constituem uma classe de programas que realizam tarefas específicas. Os 3
programas aplicativos mais populares são: Processadores de Textos, Planilhas Eletrônicas e Sistemas de
Gerenciamento de Banco de Dados. Outros exemplos de programas aplicativos são: folha de pagamento,
Instituto de Química – UNESP – Araraquara
2
Introdução à Computação
controle de estoques, contabilidade, controle de clientes de um consultório médico, controle de rebanhos,
etc.
Processador de Texto é um programa aplicativo projetado especialmente para facilitar a criação,
edição, formatação e impressão de textos. Ele permite fazer correção automática, mudar o tamanho e/ou
cor da letra, formatar em várias colunas, inserir um desenho ou gráfico, etc. Exemplos de processadores de
textos: Microsoft Word, LibreOffice Writer, Corel WordPerfect, etc.
Planilha Eletrônica é uma ferramenta para planejamento e análise numérica que permite utilizar a
tela do computador como um papel quadriculado sobre o qual anotamos em linhas e colunas todos os
dados. Este tipo de programa permite definir e embutir fórmulas escondidas que realizam cálculos sobre os
dados visíveis, permite também a correção de valores, e o aplicativo rapidamente recalcula os resultados
afetados por essa correção. São usadas para desenvolver orçamentos de empresas, para organizar e
controlar orçamentos domésticos, para controlar o movimento de uma conta bancária, ou ainda efetuar
previsões de vendas. Exemplos: Microsoft Excel, LibreOffice Calc, Corel WordPerfect Office, etc.
Sistema de Gerenciamento de Banco de Dados (SGBD) é um programa aplicativo capaz de
armazenar e recuperar informações em Banco de Dados.
Banco de Dados, por sua vez, é um conjunto de informações estruturadas e armazenadas de forma
organizada e integrada.
Um SGBD possui recursos para inclusão, eliminação, recuperação e modificação de dados, além de
permitir ordenar os dados, produzir relatórios, etc. Este tipo de programa substitui o antigo fichário.
Exemplos: Microsoft Access, LibreOffice Base, FireBird, MySQL, Sybase, Oracle, etc.
Uma lista de telefones dos moradores de uma determinada cidade constitui um Banco de Dados. O
catálogo telefônico tem uma estrutura pré-definida (nome do assinante, endereço e telefone) e uma
ordem de classificação (por assinante ou por endereço). Para que um Banco de Dados seja eletrônico, basta
que todas as informações sejam processadas por um computador.
Sistema Operacional é o programa mais importante, que gerencia os recursos do computador. O
sistema operacional, no nosso caso o Windows, gerencia o acesso dos programas aplicativos ao teclado, ao
monitor (vídeo), à impressora, assim como aos discos e outros dispositivos de leitura e gravação. O sistema
operacional fica o tempo todo ativo, prestando serviços aos programas aplicativos que estão sendo
executados. Cada linha de computadores tem o seu próprio sistema operacional. Exemplos de sistemas
operacionais: Windows, Linux, Mac OS, Unix, Solaris, etc.
Linguagem de Programação é um conjunto de regras que permitem a construção de sentenças que
descrevem de forma precisa as ações que desejamos que sejam executadas pelo computador.
Linguagem de Máquina é um conjunto de instruções capazes de ativar diretamente os dispositivos
eletrônicos do computador. A linguagem de máquina é constituída somente por 0 e 1 (bits), o que dificulta
a leitura e a compreensão pelas pessoas.
Exemplo de uma instrução em linguagem de máquina: 0 1 1 0 1 0 1 0 1 1 0 1
BIT (BInary DigiT = Dígito Binário) 0 ou 1. Bit é a menor unidade de informação, e apresenta dois
estados identificáveis (sim ou não, verdadeiro ou falso, chave ligada ou desligada, uma corrente passando
ou não por um circuito elétrico, um item magnetizado ou não, etc.) que são associados aos números 1 e 0,
respectivamente.
Byte é um conjunto de bits. A maioria dos fabricantes de computadores utilizam bytes constituídos
por 8 bits. Para o computador armazenar um caractere, que é uma letra, um algarismo, ou símbolo (ex: M,
a, 4, 7, -, ?, *) ocupa um byte, ou seja, uma sequência de 8 bits ligados (1) ou desligados (0).
O byte é a unidade de medida da quantidade de informação digital. Por exemplo: o disco rígido é
de 1 Tera byte (TB), o pen drive é de 8 Giga bytes (GB), etc.
Instituto de Química – UNESP – Araraquara
3
Introdução à Computação
Os prefixos (kilo, mega, giga, tera, etc.) são coloquialmente utilizados na computação para
expressar grandes quantidades de bytes. Como a arquitetura do computador se baseia em números
binários, em computação, esses prefixos geralmente são utilizados para indicar potências de dois, o que
não é correto, pois no Sistema Internacional de Unidades (SI) esses prefixos representam potências de dez.
Prefixos em uso na computação coloquial
Nome Símbolo
Potência de dez (SI)
Potência de dois
Diferença
quilo
K
103 = 1.000
210 = 1.024
2,4%
mega
M
106 = 1.000.000
220 = 1.048.576
4,9%
giga
G
109 = 1.000.000.000
230 = 1.073.741.824
7,4%
tera
T
1012 = 1.000.000.000.000
240 = 1.099.511.627.776
peta
P
1015 = 1.000.000.000.000.000 250 = 1.125.899.906.842.624
10,0%
12,5%
Em 1998 foram introduzidos os prefixos binários.
Prefixos binários segundo normas internacionais
Nome Símbolo Potência de dois
kibi
Ki
210 = 1.024
mebi
Mi
220 = 1.048.576
gibi
Gi
230 = 1.073.741.824
tebi
Ti
240 = 1.099.511.627.776
pebi
Pi
250 = 1.125.899.906.842.624
Padrões de Codificação
No computador a representação interna de informações é feita através de um padrão de
codificação onde, por convenção, certos conjuntos de bits representam certos caracteres. No padrão de
codificação ASCII estendido, de 8 bits, a letra A é representada por 1000001. Unicode é outro padrão de
codificação de 16 bits.
Linguagem de Montagem é uma linguagem de baixo nível que situa apenas um nível de abstração
acima da linguagem de máquina e usa mnemônicos (símbolos fáceis de memorizar) para expressar as
instruções. Um programa especial chamado montador deve traduzir as instruções (simbólicas) da
linguagem de montagem para a linguagem de máquina. Exemplo: Assembler é o montador da linguagem
Assembly.
Exemplo de instruções em linguagem de montagem:
ADD C, 1
MOV A, B
CMP A, E
JMP fim
Linguagem de Alto Nível é uma linguagem que utiliza notações matemáticas e grupos de palavras
(em inglês) para representar as instruções de máquina, tornando o processo de programação mais próximo
do entendimento humano.
Exemplos de linguagens: Fortran, Pascal, C++, Visual Basic, Delphi, Java, PHP, Python, etc.
Exemplos de trechos de programa:
Instituto de Química – UNESP – Araraquara
4
Introdução à Computação
FORTRAN
10 if (nota .LT. 5) goto 30
write(2, 20)
20 format('Aprovado')
goto 50
30 write(2, 40)
40 format('Reprovado')
50 stop
end
BASIC
30 if nota < 5 then print "Reprovado" else print "Aprovado"
PASCAL
if nota < 5 then write('Reprovado') else write('Aprovado');
C
if (nota < 5) printf(“Reprovado”); else printf(“Aprovado”);
Compilador: traduz o programa fonte (ou código fonte), escrito na linguagem de alto nível, como
Pascal ou C, para a linguagem de máquina, gerando o programa executável que o computador consegue
entender e processar diretamente.
Interpretador: interpreta cada comando do programa fonte e executa as instruções que a ele
correspondem, sem gerar um programa executável. Em geral os programas interpretados são mais lentos
do que os compilados, pois os compiladores fazem a tradução uma única vez, e a partir daí executam
diretamente o programa traduzido, enquanto que o interpretador traduz o programa fonte todas as vezes
que executa.
2.2. Hardware - Conceitos Básicos
Hardware é a parte física de um Sistema de Computação, ou seja, todos os elementos materiais
que o compõem (a estrutura, os circuitos eletrônicos, os dispositivos mecânicos, elétricos, magnéticos, etc).
Os componentes básicos de um computador são:
 Dispositivo de Entrada e Saída (ou Periféricos)
 Memória
 Unidade Central de Processamento (UCP)
Dispositivo
de Entrada
Memória RAM
Unidade Lógica e
Aritmética
Unidade de
Controle
UCP
Instituto de Química – UNESP – Araraquara
5
Dispositivo
de Saída
Introdução à Computação
Dispositivo de Entrada serve para receber os dados e programas preparados pelo ser humano e
transformá-los em sinais eletromagnéticos (bits) manipuláveis pelo computador. Exemplo: teclado, mouse,
scanner, drive de DVD, etc.
Dispositivo de Saída serve para transformar os dados processados pelo computador em formas
compreensíveis pelo ser humano e exibi-los. Exemplo: impressora, monitor ou vídeo, plotter, etc.
Memória é o dispositivo que armazena informações. Existem dois tipos de memória: memória
primária e secundária.
Memória Primária é a memória sem a qual o computador não funciona. A sua principal função é
armazenar informações necessárias para o processador, como por exemplo, os programas em execução.
Fazem parte da memória primária, as memórias RAM, ROM e Cache.
 RAM (Random Access Memory) é a memória de trabalho do computador. Ela pode ser lida e
gravada pela Unidade Central de Processamento (UCP) a qualquer instante. É onde ficam
armazenados os dados, os resultados intermediários e os programas que estão sendo executados
pela UCP. Quando um programa que estava sendo usado é fechado, a parte da memória RAM, que
estava sendo utilizada, é liberada para armazenar novos dados e programas. As informações que
são introduzidas no computador através do teclado, da leitura do disco rígido, CD/DVD ou pen drive
são armazenadas na memória RAM. Como a memória RAM é volátil as informações nela
armazenadas desaparecem com o desligamento do computador ou com a queda de energia
elétrica.
 ROM (Ready Only Memory) é a memória exclusivamente de leitura, onde as informações são
gravadas uma única vez, geralmente pelo fabricante e nunca mais alteradas. A memória ROM não
é volátil, e é uma memória permanente, o seu conteúdo não é perdido mesmo com o desligamento
do computador. Nos microcomputadores, existe um programa muito importante chamado BIOS
(Basic Input-Output System - Sistema Básico de Entrada e Saída) que tem várias funções, entre as
quais, a de realizar a "partida" do computador . Quando ligamos o computador, o BIOS realiza a
contagem de memória, faz uma rápida checagem do funcionamento do computador e carrega o
Sistema Operacional do disco rígido (memória secundária) para a memória RAM. O BIOS está
gravado em uma memória ROM, pois esse programa não deve ser alterado e deve ser executado
todas as vezes que o computador é ligado. Existem outros tipos de memória ROM como PROM
(Programmable ROM), EPROM (Erasable Programmable ROM), EEPROM (Electrically Erasable
Programmable ROM), etc.
 Cache é também um tipo de memória primária, volátil, de grande velocidade, mais rápida do que
a memória RAM. A memória cache armazena e recupera os dados usados mais frequentemente
pelo processador de modo que sua recuperação possa ser bem rápida. É uma memória mais cara
do que a memória RAM.
Memória Secundária é um meio de armazenamento a longo prazo no qual o computador armazena
dados que poderão ser posteriormente utilizados. Este tipo de memória não é estritamente necessária para
a operação do computador, o acesso a este tipo de memória é mais lento em comparação com o acesso à
memória primária, e o custo por unidade de memória secundária é muito menor que o custo por unidade
de memória primária.
As memórias secundárias mais comuns, utilizadas pelos computadores são: disco rígido, SSD, pen
drive, cartão de memória micro SD, CD, DVD, Blu-ray, etc.
 Disco Rígido ou HD (Hard Disk) é um meio de armazenamento secundário de informações que
emprega vários discos não flexíveis revestidos com material magnético e alojados juntamente com
Instituto de Química – UNESP – Araraquara
6
Introdução à Computação
os cabeçotes de leitura/gravação, em uma caixa hermeticamente fechada. Atualmente a
capacidade de um disco rígido é especificado em termos de centenas de Gbytes ou alguns Tbytes.
 SSD (Solid State Drive) ou Unidade (ou Drive) de Estado Sólido é um meio de armazenamento
secundário de informações, constituído por circuitos eletrônicos do mesmo tipo da memória flash
utilizada nos pen drives. O SSD tem velocidade bem maior em relação aos discos rígidos, porém seu
custo é mais elevado. Os SSDs apresentem consumo reduzido de energia, tempo de acesso bem
reduzido e são silenciosos.
 Pen drive é uma memória portátil, constituído por memória flash, que funciona em equipamentos
com porta USB. O pen drive surgiu em 2000 com o objetivo de substituir os disquetes. Existem pen
drives de 1 GB, 2 GB, 256 GB e até 1 TB. O modelo de 1 GB armazena o equivalente a 728 disquetes.
 cartão de memória micro SD (Secure Digital) é um cartão de memória flash removível, utilizado
inicialmente em telefones celulares devido a sua medida reduzida (1,5cm x 1,1cm x 1 mm). Através
de um adaptador o micro SD pode ser utilizado em qualquer dispositivo que suporta o cartão SD.
 CD (Compact-Disk): uma tecnologia de armazenamento ótico que emprega disco a laser e pode
armazenar até 700 Mbytes de informações digitais. Existem os discos CD-R (CD-Recordable) que
podem ser escritos só uma vez e os CD-RW (CD-ReWritable) que podem ser gravados, apagados e
reutilizados.
 DVD (Digital Video Disc e posteriormente Digital Versatile Disc): uma geração de disco ótico que
armazena 4.7 Gbytes de informações em um disco de uma face e uma única camada e 17 Gbytes
em um disco de 2 faces e 2 camadas. Existem também os discos DVD-R (Recordable) que só gravam
uma vez e o DVD-RW (Rewritable) que é a versão regravável.
 Blu-ray (BD): é a nova geração de disco ótico para vídeos de alta definição, que utiliza raio laser
de cor azul com comprimento de onda menor do que o do DVD e CD, mas apresenta o mesmo
tamanho de um DVD e tem a capacidade de armazenar de 25 a 100 Gbytes de informações.
Unidade Central de Processamento (UCP) ou Central Processing Unit (CPU) é a principal unidade
de controle e processamento de um computador, e é constituída de circuitos eletrônicos que interpretam e
executam instruções de programas e comunicam com os dispositivos de armazenamento e de entrada e
saída. A UCP é composta pela Unidade Lógica e Aritmética (ULA) e pela Unidade de Controle (UC).
 Unidade Lógica e Aritmética (ULA): realiza cálculos através de operações aritméticas (adição,
subtração,...) e operações relacionais (comparação de valores).
 Unidade de Controle (UC): gerencia as operações do computador comunicando com a Unidade
Lógica e Aritmética, com a memória e com os dispositivos de entrada e saída. Controla as
instruções dos programas que estão na memória, faz com que o dispositivo de entrada leia os
dados, transfira os valores adequados da memória para a ULA, armazena e recupera dados e
resultados intermediários armazenados na memória e passa os resultados para o dispositivo de
saída.
3. Noções Básicas de Internet
Redes de computadores são grupos de computadores e dispositivos computacionais como
impressoras, scanners, etc., conectados por algum recurso de comunicação. Uma rede pode envolver
conexões permanentes tais como cabos ou conexões temporárias através de linhas telefônicas ou outros
elos de comunicação.
Instituto de Química – UNESP – Araraquara
7
Introdução à Computação
Internet é a rede mundial de computadores que é formada por várias redes de computadores
interligadas. A Internet surgiu de um projeto militar nos Estados Unidos na década de 60, evoluiu para uma
rede acadêmica na década de 70 e hoje constitui o maior meio de comunicação do mundo.
A Internet é formada por redes locais (LANs - Local Area Network), redes de abrangência urbana
(MANs - Metropolitan Area Network) e redes remotas (WANs - Wide Area Network) que abrangem estados,
países e continentes, conectando computadores do mundo inteiro. Essas redes são conectadas por
recursos que variam de linhas telefônicas de discagem comum, linhas privadas dedicadas de alta
velocidade, ligações por microondas, ligações por fibras óticas e satélites.
Na década de 80 e no início da década de 90 a rede foi aperfeiçoada e começou a surgir serviços
que caracterizam a Internet atual. O principal desses serviços é World Wide Web (WWW) lançada em 1991,
que viabilizou a transmissão de imagens, sons e vídeos pela Internet. Foi o WWW que popularizou a
Internet.
A Intranet é uma rede interna de informações de uma organização (empresa, universidade, etc.)
baseada na tecnologia da Internet. Serve para compartilhar informações apenas entre os usuários
registrados, sem permitir o acesso de pessoas externas. A Intranet é uma evolução da Internet, em que se
busca, dentro das organizações, formas de acesso às informações, usando os mecanismos de navegação
que são os navegadores. A operação é idêntica, e mesmo as interfaces são as mesmas daquelas vistas na
Internet. Através da Intranet, os usuários internos da organização compartilham informações tais como:
formulários, especificações de produtos, catálogos de produtos, políticas internas de administração e de
recursos humanos, cadastro de clientes, etc.
Rede Local (LAN - Local Area Network) é uma estrutura que conecta vários computadores e outros
dispositivos (como impressoras) dentro de uma área geográfica limitada. Os usuários de rede local podem
trocar informações, compartilhar periféricos e utilizar recursos de servidor de arquivos. Normalmente a
área geográfica de uma rede local se restringe a uma sala, um departamento, um andar ou um prédio,
dentro de um raio de 100 m.
Servidor: nas redes locais o servidor é um computador que fornece algum tipo de serviço para
outros computadores conectados a ele via rede. Um exemplo é o servidor de arquivos que tem um disco
grande e atende pedidos de leitura e gravação naquele disco, outro exemplo é o servidor de impressão que
controla as tarefas de impressão enviadas para a impressora conectada na rede.
Alguns dos serviços básicos da Internet são: correio eletrônico (e-mail), WWW (World Wide Web),
acesso remoto ao computador, transferência de arquivos, lista de correio eletrônico, grupos de notícias,
comunicação interativa, etc.
Correio Eletrônico (e-mail) permite um usuário escrever e enviar uma mensagem de texto para
outro usuário ou para um grupo deles, através da internet.
WWW (World Wide Web ou simplesmente Web) é um serviço no formato de hipertextos que
permite ao usuário buscar informações nos diversos computadores da Internet e visualizá-las através de
seções gráficas, formadas por imagens, sons e animações. Hipertexto é um documento que permite acesso
não sequencial, com diferentes níveis de detalhamento e com páginas inter-relacionadas. O leitor pode
percorrer o documento na sequência desejada, saltando de uma página para outra em busca de
informações relacionadas a uma palavra, frase (em destaque) ou ícone.
Acesso Remoto ao Computador é uma ferramenta interativa que permite acessar e executar
programas e aplicações disponíveis em um computador remoto, conectado à internet.
Transferência de Arquivos (ftp, download e upload) permite transferir arquivos entre
computadores interligados pela rede.
Instituto de Química – UNESP – Araraquara
8
Introdução à Computação
Lista de Correio Eletrônico ou Lista de Discussão é uma forma de contatar um grupo de pessoas
através do e-mail. As pessoas que participam da lista podem enviar mensagens para o endereço da lista, o
qual reenvia então a mensgem para cada uma das pessoas (e-mail) inscritas na lista.
Comunicação Interativa é a comunicação instantânea entre duas ou mais pessoas, independente
da localização geográfica dessas pessoas.
4. Números Binários
O sistema binário (ou sistema de base 2), é formado por dois algarismos: 0 e 1, enquanto que o
sistema decimal (ou sistema de base 10), normalmente utilizado, é formado por 10 algarismos: 0, 1, 2, 3, 4,
5, 6, 7, 8 e 9.
Os números binários (0 e 1) foram adotados nos computadores por motivos de precisão e
economia, pois construir um circuito eletrônico capaz de detectar a diferença entre dois estados (presença
ou ausência de corrente elétrica, por exemplo) é muito mais fácil e barato do que construir um circuito que
detecte a diferença entre dez estados diferentes.
Um dígito binário é chamado de BIT, proveniente de BInary digiT, como mencionado
anteriormente.
Transformação de números decimais em números binários
13
2
1
6
2
0
3
2
1
1
=>
46
2
0
23
2
1
11
2
1
5
2
1
2
2
0
1
1 1 0 1
=> 1 0 1 1 1 0
Transformação de números binários em números decimais
1
1
0
1
1
0
1
1
1
0
X
x
x
x
x
x
x
x
x
x
23
22
21
20
25
24
23
22
21
20
0
1
2
0
4
4
8
8
0
13
32
46
Instituto de Química – UNESP – Araraquara
9
Introdução à Computação
Números Decimais Números Binários
00
01
02
03
04
05
06
07
08
09
10
11
12
..
.
0000
0001
0010
0011
0100
0101
0110
0111
1000
1001
1010
1011
1100
..
.
5. Algoritmos
Algoritmo é a descrição, de forma lógica, das ações a serem executadas no cumprimento de uma
tarefa, ou seja, é uma sequência de passos que levam à realização de uma tarefa.
Em um algoritmo é importante salientarmos que:
- cada passo deve ser uma instrução simples e sem ambiguidade que possa ser realizada;
- a ordem dos passos deve ser precisamente determinada;
- deve possuir um fim, isto é, um número finito de passos.
Existem várias formas para representar um algoritmo:
 descrição narrativa;
 fluxograma ou diagrama de blocos;
 pseudocódigo (forma genérica de escrever o algoritmo usando uma linguagem
simples, estruturada e nativa a quem o escreve).
A seguir, apresentamos um algoritmo em forma de descrição narrativa, para troca de uma lâmpada
queimada.
1. Remova a lâmpada queimada.
2. Coloque uma nova lâmpada.
Detalhando os passos, temos:
1.1. Coloque uma escada embaixo da lâmpada queimada.
1.2. Suba a escada até alcançar a lâmpada queimada.
1.3. Gire a lâmpada queimada no sentido anti-horário até que ela se solte.
2.1. Escolha uma lâmpada nova de mesma potência da queimada.
2.2. Posicione a nova lâmpada no soquete.
2.3. Gire a lâmpada no sentido horário até que ela se firme.
2.4. Desça a escada.
Instituto de Química – UNESP – Araraquara
10
Introdução à Computação
Ordenando e detalhando um pouco mais os passos, temos:
1. Coloque uma escada embaixo da lâmpada queimada.
2. Escolha uma lâmpada nova.
3. Enquanto a potência não for a mesma da queimada,
Descarte a lâmpada escolhida,
Escolha outra lâmpada.
4. Enquanto não possa alcançar a lâmpada queimada,
Suba mais um degrau da escada.
5. Enquanto a lâmpada não estiver livre do soquete,
Gire a lâmpada no sentido anti-horário.
6. Posicione a nova lâmpada no soquete.
7. Enquanto a lâmpada não estiver firme no soquete,
Gire a lâmpada no sentido horário.
8. Desça da escada.
5.1. Algoritmo na solução de um problema usando o computador
Problema do
mundo real
Fase de solução
do problema
Solução na forma de
algoritmo
Solução na forma de
um programa de
computador
Fase de
implementação
No esquema acima, é possível visualizar onde se encaixa o algoritmo, na solução de um problema
utilizando o computador.
Muitas vezes, temos um problema do mundo real que desejamos resolver através do computador,
devido principalmente à rapidez de execução e confiabilidade dos resultados. Neste caso, inicialmente é
necessário compreender muito bem o problema e saber solucionar este problema. A próxima etapa
consiste em transcrever os passos da solução do problema em uma forma de algoritmo (descrição
narrativa, fluxograma ou pseudocódigo). A etapa seguinte é a de implementação, que consiste em passar a
solução, que está em forma de algoritmo, para uma linguagem de programação, gerando assim um
programa de computador. Um programa nada mais é do que a formalização de um algoritmo em uma
determinada linguagem de programação, obedecendo às regras de sintaxe e semântica desta linguagem,
de forma que o computador possa “entender” a sequência de ações que deve ser executada.
Utilizando-se um programa de computador, o problema pode ser resolvido com muita rapidez,
quantas vezes forem necessárias.
Instituto de Química – UNESP – Araraquara
11
Introdução à Computação
5.2. Passos para a construção de um algoritmo
Para construir um algoritmo, devemos seguir os passos abaixo:
1) Compreender o problema e a sua solução de uma forma muito clara e destacar os pontos mais
importantes.
2) Definir os dados de entrada, isto é, os dados (valores e informações) que serão fornecidos ao
algoritmo.
3) Definir o processamento, ou seja, os cálculos que deverão ser realizados para a solução do
problema.
4) Definir os dados de saída, ou seja, os resultados do processamento que serão apresentados ao
usuário.
5) Construir o algoritmo usando uma das formas citadas acima (descrição narrativa, fluxograma
ou pseudocódigo).
6) Testar o algoritmo através de simulações.
5.3. Algoritmo, programação e raciocínio lógico
A construção de algoritmos e a programação permitem melhorar o raciocínio lógico e acelerar o
desenvolvimento cognitivo, porque a elaboração de algoritmos e programas faz com que o aluno exercite a
percepção dos pontos chaves, força o aluno a fazer planejamento e pensar organizadamente.
Um dos principais objetivos desta disciplina é estimular o aluno a desenvolver o raciocínio lógico
através da construção de algoritmos e programas, proporcionando um amadurecimento na maneira de
pensar diante dos problemas reais.
Não existem fórmulas prontas na construção de algoritmos e programas. O que se adquire com o
treino é o aperfeiçoamento na forma de pensar e raciocinar sobre o problema em mãos. O raciocínio lógico
é uma habilidade inerente a todas as pessoas e necessária em inúmeras atividades que realizamos.
James Paul Holloway em seu livro “Introdução à Programação para Engenharia” diz: “... a razão
mais importante para estudar e criar algoritmos não é, na verdade, sua utilidade natural, mas em vez disso,
a habilidade de pensamento que a sua criação nos força a desenvolver. Para ser mais exato, o raciocínio
lógico necessário lhe proporcionará boas condições quando você tiver problemas a analisar, mesmo se
esses problemas não puderem ser resolvidos por meio de algoritmos formalmente construídos.”.
Outra passagem a destacar no livro de Holloway é: “Criar algoritmos é exatamente o que fazemos.
Nós os criamos. Começamos com um problema a resolver e uma página em branco, e tentamos preencher
este vazio com um código-fonte que, quando traduzido e executado num computador, resolverá o
problema. Este processo criativo envolve muitos princípios de projeto. Devemos entender o problema;
analisar o problema e encontrar uma solução; analisar a solução para encontrar a melhor maneira de
implementá-la; trabalhar considerando as restrições; procurar simplicidade, elegância e confiabilidade.
Uma introdução aos algoritmos e suas implementações pode, assim, proporcionar uma rica experiência
introdutória no projeto em engenharia.”
Para exercitar um pouco o raciocínio lógico, tente resolver os problemas abaixo:
1) Há três suspeitos de um crime: o cozinheiro, a governanta e o mordomo. Sabe−se que o crime foi
efetivamente cometido por um ou por mais que um deles. Sabe−se, ainda que:
- se o cozinheiro é inocente, então a governanta é culpada;
- ou o mordomo é culpado ou a governanta é culpada, mas não os dois;
- o mordomo não é inocente.
Logo:
(a) a governanta e o mordomo são os culpados
(b) o cozinheiro e o mordomo são os culpados
(c) somente a governanta é culpada
Instituto de Química – UNESP – Araraquara
12
Introdução à Computação
(d) somente o cozinheiro é culpado
(e) somente o mordomo é culpado
2) O preço de um produto foi reduzido em 20% numa liquidação. Qual deverá ser a porcentagem
de aumento do preço do mesmo produto para que ele volte a ter o preço original?
(a) 15%
(b) 20%
(c) 25%
(d) 30%
6. Tipos de Dados
Apesar do computador, na maior parte do tempo em nosso meio, ser utilizado como processador
de textos ou para acesso à Internet, o objetivo principal de um computador é a resolução de problemas. Na
resolução de problemas o computador manipula dados de vários tipos. Estes dados podem ser numéricos,
literais ou lógicos. A seguir apresentamos a classificação dos dados e a sua descrição.
Dados
Numéricos
Real
Lógicos
Inteiro
Literais
Caractere
Cadeia de Caracteres
6.1. Dados Numéricos
Os dados numéricos podem ser inteiros ou reais.
Os números inteiros podem ser positivos ou negativos e não possuem a parte decimal.
Os números reais podem ser positivos ou negativos e possuem a parte decimal. Os números reais
podem ser representados em forma decimal ou em forma de ponto flutuante.
Exemplo de números reais em forma decimal: 8.15927, 0.5, 176.48, etc. Obs. O ponto decimal deve
ser representado por ponto (.), seguindo a notação da língua inglesa que é utilizada nas linguagens de
programação.
Geralmente, utiliza-se a representação de números reais em ponto flutuante (notação científica)
quando o número é muito grande ou muito pequeno.
Exemplo: 0.0000000000061725  617 x 10-14 (representação em ponto flutuante)
418639138670259
 419 x 1012 (representação em ponto flutuante)
Para transformar um número real que está na representação decimal para a representação em
ponto flutuante, devemos:
 definir o número de dígitos de precisão (ou significativos) e arredondar o último dígito, se for
necessário.
 ajustar a magnitude do número como potência de 10.
Instituto de Química – UNESP – Araraquara
13
Introdução à Computação
6.2. Dados Literais
Os dados literais são caracteres ou cadeia de caracteres.
Caractere é qualquer letra (maiúscula ou minúscula), algarismo (0, 1, 2, …, 9) ou caractere especial
(sinais de pontuação e símbolos: %, +, @, *, ?, &, #, :, etc.). Os caracteres devem ser representados entre
apóstrofos ('). Exemplos: 'y', 'n', '$', etc.
Cadeia de caracteres ou string: é uma sequência de caracteres. As cadeias de caracteres também
devem ser representadas entre apóstrofos ('). Exemplos: 'Ola', 'Bem vindo!', 'Digite um numero:', etc.
6.3. Dados Lógicos
Os dados lógicos são também chamados de dados booleanos e podem assumir somente um dos
valores: falso ou verdadeiro. Em linguagens de programação, geralmente usa-se o número 1 para
representar um resultado verdadeiro e o número 0 para representar um resultado falso.
7. Constantes e Variáveis
Constantes são valores fixos que não se modificam durante a execução do programa. As constantes
podem ser numéricas (5, 128, -76), literais ('Paula', 'feminino', 'fim'), ou lógicas (V ou F).
Variáveis são entidades que possuem um conteúdo (valor) que pode variar no algoritmo ou no
programa. Embora elas possam assumir diferentes valores, só podem armazenar um único valor a cada
instante. Uma variável é conhecida no programa por um nome ou identificador.
O identificador ou o nome de uma variável deve iniciar com uma letra e pode ser seguida de letras,
algarismos ou caractere de sublinhado, mas não pode conter caracteres especiais (-, *, %, ç, e letras com
acentos). Exemplos de identificadores válidos: X, Y1, saldo, nome_do_cliente, RG, Aula26, etc.
Exemplos de nomes de variáveis inválidos: 2x, A[1], M-N, 07/09, nota-do-aluno, salário, etc.
As variáveis podem ser numéricas ou literais e devem ter nomes significativos. Nomes significativos
são nomes que lembram o seu conteúdo. Por exemplo: nota, nome, saldo, ao invés de x, y, z.
8. Expressões
Expressão em termos computacionais está ligado ao conceito de expressão ou fórmula matemática,
onde um conjunto de variáveis e constantes se relacionam por meio de operadores compondo uma
fórmula que, quando avaliada, resulta em um valor.
8.1. Expressões Aritméticas
Expressões Aritméticas: são expressões em que os operadores são aritméticos e os operandos são
constantes e/ou variáveis numéricas.
Operadores Aritméticos e suas Prioridades
prioridade
1
2
operador
ação
*
multiplicação
/
divisão
MOD
resto da divisão inteira
+
adição
-
subtração
Instituto de Química – UNESP – Araraquara
14
Introdução à Computação
Funções
função
ação
EXP(x)
exponencial de x (ex, onde e = 2.718282...)
LN(x)
logaritmo neperiano de x (logex)
ABS(x)
valor absoluto de x (x)
TRUNC(x)
parte inteira do número real x
ROUND(x)
arredonda o número real x
SIN(X)
seno de x
COS(x)
cosseno de x
SQR(x)
quadrado de x (x2)
SQRT(x)
raiz quadrada de x ( x )
Exemplos de expressões aritméticas:
a) A-B*SQR(C)
b) SQRT(SQR(b)-4*a*c)
c) TRUNC(3.68) - EXP(3)
d) ROUND(5.8)+ABS(-4)
e) SIN(A)-LN(B)
f) 22 MOD 6 + soma
8.2. Expressões Relacionais
Expressões Relacionais ou Relações: são expressões que realizam comparações entre valores do
mesmo tipo. Estes valores são representados nas relações através de constantes, variáveis ou expressões
aritméticas.
Operadores Relacionais
operador
ação
=
igual
<>
diferente
<
menor
>
maior
<=
menor ou igual
>=
maior ou igual
O resultado obtido de uma expressão relacional é sempre um valor lógico (Verdadeiro ou Falso).
Exemplos de expressões relacionais:
a) X+Y=3*X+5
b) 2*A<8
c) nome <> 'Ana Maria'
d) SQRT(SQR(b)-4*a*c) >= 0
e) A <> B
f) sexo = ‘masculino’
Instituto de Química – UNESP – Araraquara
15
Introdução à Computação
8.3. Expressões Lógicas
Expressões Lógicas: são expressões cujos operadores são lógicos e cujos operandos são expressões
relacionais, constantes e/ou variáveis do tipo lógico. O resultado de uma expressão lógica é sempre um
valor lógico (V ou F).
Operadores Lógicos
operador
ação
e ()
conjunção
ou ()
disjunção
não (~)
negação
Sejam p e q proposições, temos a seguinte Tabela-Verdade:
conjunção
p
V
V
F
F
q
V
F
V
F
disjunção
pq
V
F
F
F
p
V
V
F
F
negação
pq
V
V
V
F
q
V
F
V
F
p
V
F
~p
F
V
Suponha que tenhamos duas proposições:
A : “Eu gosto de dia ensolarado.”
B : “Hoje vai chover”
Podemos criar várias composições de proposições usando os operadores lógicos:
~A : “Eu não gosto de dia ensolarado”
~(A  B) : “Não é verdade que eu gosto de dia ensolarado e hoje vai chover”
A  ~B : “Eu gosto de dia ensolarado ou hoje não vai chover”
Exemplos de expressões lógicas:
a) X > 2*Y  Idade = 18
b) cidade = 'Araraquara'  bairro = 'Centro'
c) ~Fim  Total < 15
Prioridade entre os Operadores
prioridade
operador
1
aritmético
2
relacional
3
não
4
e
5
ou
Obs: Vários níveis de parênteses podem ser utilizados para fixar uma ordem de execução diferente
da prioridade indicada pela tabela acima.
Exemplo: ~(x = 20  y > 5)
Instituto de Química – UNESP – Araraquara
16
Introdução à Computação
9. Fluxogramas
Fluxograma ou diagrama de blocos é a representação simbólica dos passos a serem seguidos em
um algoritmo, ou seja, é a representação esquemática de um processo.
Exemplo de Controle de Estoque:
O funcionário responsável pelo estoque recebe uma solicitação de peça e verifica na listagem de
estoque a disponibilidade da mesma. Caso a peça esteja disponível, ela é entregue ao solicitante e em
seguida é efetuada a baixa no estoque. Caso a peça não esteja disponível, o funcionário verifica o tempo de
entrega junto ao fornecedor da peça e informa o tempo de entrega ao solicitante. Caso o solicitante deseje
a peça, é efetuado o pedido ao fornecedor e aguarda-se a chegada da peça e a sua entrada no estoque. Em
seguida ela é entregue ao solicitante e é efetuada a baixa no estoque.
Início
Recebe a solicitação e
verifica no estoque
S
Entrega ao solicitante
Dá baixa no estoque
Disponível ?
Faz o pedido e
aguarda a entrega no
estoque
N
Verifica o tempo de
entrega e informa ao
solicitante
S
Quer a peça?
N
Fim
Os símbolos básicos utilizados em fluxogramas são:
início ou fim
leitura (entrada)
decisão
cálculo e atribuição
impressão (saída)
sentido do fluxo
9.1. Comando de Atribuição
O Comando de Atribuição permite que se forneça um valor a uma determinada variável. O valor
pode ser resultado de uma expressão.
Identificador  valor ou expressão
Instituto de Química – UNESP – Araraquara
17
Introdução à Computação
Exemplos:
a) A  7
b) idade  18
c) NOME  'Marina'
d) media  (a + b)/2
e) X  Y
9.2. Comando de Entrada
O Comando de Entrada permite que o usuário do programa forneça valores ao programa.
lista de identificadores
onde: lista de identificadores são os nomes das variáveis, separados por vírgula, nas quais serão
armazenados os valores provenientes do usuário através dos dispositivos de entrada.
9.3. Comando de Saída
O Comando de Saída permite mostrar ao usuário os valores das variáveis ou das constantes.
lista de identificadores, constantes
ou expressões
onde: lista de identificadores são os nomes das variáveis, cujos conteúdos serão mostrados, as constantes
são os valores e as expressões podem ser expressões aritméticas ou outras, cujos resultados serão
mostrados aos usuários através de um dispositivo de saída.
9.4. Estrutura Sequencial
Estrutura Sequencial é uma coleção de ações a serem executadas sequencialmente.
ação1
ação2
Exemplo 9.1.
Fluxograma para ler três números, calcular a média aritmética entre estes números e imprimir o
resultado.
Instituto de Química – UNESP – Araraquara
18
Introdução à Computação
início
A,B,C
media  (A+B+C)/3
'Média = ', media
fim
9.5. Estruturas Condicionais
Estas estruturas permitem escolher um grupo de ações ou estruturas a serem executadas quando
uma determinada condição, representada por uma expressão lógica, é satisfeita ou não.
9.5.1. Estrutura Condicional Simples
condição
F
V
ação / ações
A(s) ação(ções) só será(ão) executada(s) se a condição for Verdadeira. Condição é um teste, cujo
resultado é Verdadeiro ou Falso
Exemplo 9.2.
Fluxograma para ler uma nota e imprimir REPROVADO, caso a nota seja menor do que 5.
início
nota
nota < 5
F
V
‘REPROVADO‘
fim
Instituto de Química – UNESP – Araraquara
19
Introdução à Computação
9.5.2. Estrutura Condicional Composta
V
F
condição
ação1 / ações1
ação2 / ações2
Se a condição for Verdadeira, a ação1 ou a sequência de ações1 serão executadas, se a condição for
Falsa, a ação2 ou a sequência de ações2 serão executadas.
Exemplo 9.3.
Fluxograma para ler a nota da prova e a nota do trabalho, e imprimir REPROVADO, caso a nota da
prova ou do trabalho seja menor do que 5 e caso contrário imprimir APROVADO.
início
prova, trab
V
F
prova < 5
ou trab < 5
‘REPROVADO‘
‘APROVADO‘
fim
9.6. Estruturas de Repetição
Uma estrutura de repetição permite repetir um grupo de ações ou estruturas, várias vezes e o fim
da repetição é determinado por um teste de condição.
9.6.1. Estrutura de Repetição Enquanto-faça
Esta estrutura de repetição tem o teste de condição no início da repetição. Portanto, enquanto a
condição é verdadeira, a ação ou as ações serão executadas repetidamente (ENQUANTO-FAÇA). Neste tipo
de estrutura de repetição, caso a condição seja Falsa na primeira vez, a ação ou as ações não serão
executadas nenhuma vez.
condição
F
V
ação / ações
Instituto de Química – UNESP – Araraquara
20
Introdução à Computação
Exemplo 9.4
Fluxograma para imprimir o quadrado dos números inteiros entre 1 e 50 (inclusive), usando a
estrutura de repetição Enquanto-faça.
início
N1
N <= 50
F
V
Q  N*N
Q
N  N+1
fim
9.6.2. Estrutura de Repetição Repita-até
Esta estrutura de repetição tem o teste de condição no final da repetição. Portanto, uma ação ou
sequência de ações são executadas repetidamente, até que uma determinada condição seja satisfeita
(REPITA-ATÉ). Neste tipo de estrutura de repetição, como o teste de condição está no final, a ação ou as
ações serão executadas pelo menos uma vez.
ação / ações
F
condição
V
Instituto de Química – UNESP – Araraquara
21
Introdução à Computação
Exemplo 9.5.
Fluxograma para imprimir o quadrado dos números inteiros entre 1 e 50 (inclusive), usando a
estrutura de repetição Repita-até.
início
N1
Q  N*N
Q
N  N+1
F
N > 50
V
fim
10. Programação
Linguagem de programação é a linguagem utilizada pelo homem para dar instruções ao
computador. Uma linguagem de programação é formada por um conjunto de regras sintáticas e semânticas
que permite ao homem expressar as instruções que deseja que o computador execute.
Existem vários paradigmas (estilos) de programação:
Programação Imperativa (Fortran, Pascal, C)
Programação Orientada a Objetos (Smalltalk, C++, Java)
Programação Funcional (Lisp)
Programação Lógica (Prolog)
Na programação imperativa os programas são centrados no conceito de estados (modelados por
variáveis) e ações (comandos) que manipulam o estado. Uma linguagem de programação que utiliza o
paradigma imperativo manipula variáveis a partir de ordens ou comandos. Ex. “faça isso e depois aquilo”.
O paradigma orientado a objetos tenta extrair conceitos do mundo real por meio de estruturas
como objetos, classes, atributos e métodos. Uma classe é um conjunto de objetos e cada classe tem seus
atributos (propriedades) e métodos (ações). Ex. Cachorro é uma classe que possui os atributos: raça, idade,
cor, peso, etc. Totó é um objeto da classe cachorro, assim como Banzé. Os métodos da classe cachorro são:
latir, comer, dormir, etc. A programação orientada a objetos é complexa, envolvendo conceitos de
encapsulamento, herança, polimorfismo, associação, agregação, composição, etc.
No paradigma funcional os programadores abstraem o programa como uma sequência de funções
executadas de modo empilhado. Este paradigma é muito utilizado em Inteligência Artificial.
Instituto de Química – UNESP – Araraquara
22
Introdução à Computação
O paradigma lógico tem estilo declarativo e os programas são relações entre entrada e saída. Há
uso deste paradigma em Sistemas Especialistas e Bancos de Dados.
Os paradigmas mais utilizados são os paradigmas imperativo e orientado a objetos.
A relação entre linguagens de programação e paradigmas de programação é complexa porque uma
linguagem pode suportar mais do que um paradigma.
Na programação existem também os conceitos de modularização e programação estruturada que
não são paradigmas, mas técnicas de programação. Na programação estruturada os elementos chaves são
as estruturas básicas de controle (sequencial, condicional e repetitiva). Nesta técnica de programação é
proibido o uso irrestrito de comandos de desvio incondicional GOTO para aumentar a legibilidade e a
compreensão do programa.
A modularização de programas permite dividir o programa em blocos denominados procedimentos,
funções ou subrotinas, de modo a facilitar a compreensão e a correção, melhorando a clareza geral do
programa, além de permitir a reutilização de blocos. Com a modularização pode-se separar e esconder do
resto do programa, as informações necessárias para realizar uma tarefa específica.
11. Linguagem Pascal
A linguagem Pascal foi desenvolvida entre os anos de 1968 e 1970 por Niklaus Wirth, na Suiça, e foi
batizada de Pascal em homenagem ao grande filósofo e matemático francês, Blaise Pascal (1623-1662). A
linguagem Pascal foi projetada para ser uma versão simplificada da linguagem Algol (1960) para fins
educacionais. Ao longo de sua história a linguagem Pascal foi ganhando importância, principalmente no
ensino de programação.
A linguagem Pascal é semelhante a uma linguagem natural, o que torna muito fácil o seu
entendimento. Por esses motivos, apesar de ser uma linguagem antiga, o Pascal ainda é uma das
linguagens escolhidas para o ensino de programação. Em termos técnicos, Pascal é uma linguagem
imperativa, estruturada e modular. A linguagem Pascal não é case sensitive, isto é, não é sensível a
maiúscula e minúscula. Portanto, tanto as palavras reservadas da linguagem quanto os identificadores
(nomes de variáveis e constantes) escritos em maiúsculas ou minúsculas não são diferenciados. Exemplo:
NOME = Nome = nome.
Em 1995 foi criado o Delphi que além de ser uma linguagem de programação baseada em Object
Pascal, que permite uma programação visual e oritentada a objetos, é uma IDE (Integrated Development
Environment - Ambiente de Desenvolvimento Integrado) e também uma ferramenta RAD (Rapid
Application Development – Desenvolvimento Rápido de Aplicações).
Em 1999 foi criado o Lazarus que é uma alternativa ao Delphi, porém gratuito e de código aberto . O
Lazarus é uma IDE-RAD com base no compilador Free Pascal, compatível e com interface muito parecida
com o Delphi.
Apesar do Lazarus oferecer um ambiente de programação visual, onde a programação pode ser
realizada a partir de elementos gráficos que estão disponíveis na tela, como este tipo de programação é
mais complexa, não será abordada neste primeiro curso de programação.
Nas aulas práticas desta disciplina será utilizado o Lazarus para o desenvolvimento de programas
simples de console. Como o Lazarus é um Ambiente de Desenvolvimento Integrado (IDE), ele possui um
editor de textos inteligente que reconhece elementos da linguagem de programação, um compilador para
traduzir o código fonte e gerar o programa executável e um depurador (debugger) para auxiliar na correção
de erros de lógica do programa.
O Lazarus pode ser baixado da página http://www.lazarus-ide.org/, através do link Download
Now.
Segue um breve roteiro para o uso do Lazarus:
– Para começar a digitar um novo programa: vá ao menu Projeto / Novo Projeto e selecione
Programa Simples.
– Para salvar o programa: vá ao menu Projeto / Salvar Projeto Como e digite um nome para o
projeto (não é aceito espaço, use _ se necessário). O Lazarus salva 4 arquivos do projeto. O
arquivo Application (com extensão EXE) é o programa executável e o arquivo com a extensão LPR
contém o código fonte.
Instituto de Química – UNESP – Araraquara
23
Introdução à Computação
–
Para compilar e executar o programa: clique no botão
–
Para fechar um programa: vá ao menu Projeto / FecharProjeto.
11.1. Tipos de Dados
As características descritas a seguir são referentes ao Free Pascal utilizado pelo Lazarus.
Integer: números inteiros no intervalo de -32768 a 32767 (ocupa 2 bytes).
Operadores: +, -, *, DIV, MOD.
DIV: quociente inteiro da divisão.
MOD: resto da divisão.
Exemplo: 19 DIV 5 = 3
19 MOD 5 = 4
Longint: números inteiros no intervalo de -2147483648 a 2147483647 (ocupa 4 bytes).
Real: números reais com grandeza de 2.9x10 -39 a 1.7x1038 com 11 a 12 dígitos significativos (ocupa
6 bytes).
Operadores: +, -, *, /.
Double: números reais com grandeza de 5.0x10 -324 a 1.7x10308 com 15 a 16 dígitos significativos
(ocupa 8 bytes).
Extended: números reais com grandeza de 1.9x10 -4932 a 1.1x104932 com 19 a 20 dígitos significativos
(ocupa 10 bytes).
Char: caractere.
String: cadeia de caracteres.
Boolean: valores lógicos TRUE ou FALSE.
11.2. Funções Numéricas Pré-definidas
Função
Ação
EXP(x)
exponencial de x (ex, onde e = 2.718282...)
LN(x)
logaritmo neperiano de x (logex)
ABS(x)
valor absoluto de x (x)
TRUNC(x)
parte inteira do número real x
ROUND(x)
arredonda o número real x
SIN(X)
seno de x
COS(x)
Cosseno de x
SQR(x)
quadrado de x (x2)
Instituto de Química – UNESP – Araraquara
24
Introdução à Computação
SQRT(x)
raiz quadrada de x ( x )
INC(x)
incrementa 1 no valor da variável x
DEC(x)
decrementa 1 no valor da variável x
PI
 (3.14159265358979)
11.3. Operadores
11.3.1. Operadores Aritméticos
operador
ação
+
adição (operandos inteiros ou reais)
-
subtração (operandos inteiros ou reais)
*
multiplicação (operandos inteiros ou reais)
/
quociente real da divisão (operandos inteiros ou reais)
DIV
MOD
quociente inteiro da divisão (operandos inteiros)
resto da divisão (operandos inteiros)
Obs. No uso dos operadores +, -, * e /, o resultado será real, se pelo menos um dos operandos for real.
11.3.2. Operadores Relacionais
operador
ação
=
igual
<>
diferente
<
menor
>
maior
<=
menor ou igual
>=
maior ou igual
Instituto de Química – UNESP – Araraquara
25
Introdução à Computação
11.3.3. Operadores Lógicos
operador
ação
NOT
não
AND
e
OR
ou
11.3.4. Prioridade dos Operadores
Em uma expressão podem aparecer vários operadores. Quando isso acontece, o compilador Pascal
irá avaliar a expressão obedecendo a prioridade dos operadores estabelecida na tabela abaixo.
prioridade
operadores
1
NOT
2
* , / , DIV , MOD , AND
3
+ , - , OR
4
= , <> , < , > , <= , >=
Obs: Quando aparecem dois operadores de mesma prioridade, o compilador irá avaliar sempre da
esquerda para a direita. Para fixar uma ordem de execução diferente da prioridade da tabela acima , vários
níveis de parênteses podem ser utilizados. Por exemplo: (a>b) AND (a>c)
11.4. Estrutura Geral de um Programa Pascal
Um programa Pascal apresenta a seguinte estrutura geral:
PROGRAM nome_do_programa;
declarações
BEGIN
comandos e estruturas
END.
11.5. Declaração de Variáveis
Todas as variáveis utilizadas no programa devem ser declaradas, isto é, definidas de que tipo de
dados é: inteiro, real, string, etc.
As variáveis são declaradas após a palavra VAR, da seguinte forma:
lista de variáveis (separadas por vírgula): tipo de dados;
Exemplos:
Instituto de Química – UNESP – Araraquara
26
Introdução à Computação
VAR X, Y, Z: integer;
media, porcentagem: real;
nome: string;
11.6. Comando de Atribuição
O comando de atribuição serve para atribuir à uma variável, um valor, uma expressão, ou o valor
(conteúdo) de uma outra variável.
variável := expressão;
Exemplos: X := 1;
media := (X + Y)/2;
A := B;
A:= ‘B’;
mensagem := 'bom dia';
11.7. Comando de Entrada
O comando de entrada serve para o programa receber valores externos, digitados pelo usuário, e
armazenar em variáveis.
READLN(lista de variáveis);
Exemplos: READLN(X);
READLN(A,B,C);
READLN(aluno, nota);
O comando READLN lê os valores das variáveis da lista e pula para a próxima linha, de modo que o
próximo comando de entrada (READLN) recebe o primeiro valor da linha seguinte.
11.8. Comando de Saída
O comando de saída serve para mostrar os dados na tela ou na impressora.
WRITE(lista de variáveis, constantes ou expressões);
WRITELN(lista de variáveis, constantes ou expressões);
Exemplos: WRITE(n);
WRITE('MEDIA = ',soma/n);
WRITELN(nome,' ',idade,' anos');
A diferença entre estes dois comandos de saída é que o WRITE escreve os valores da lista e deixa
que o próximo comando de saída (WRITE ou WRITELN) continue escrevendo na mesma linha, enquanto que
o comando WRITELN escreve os valores da lista e muda de linha, de modo que o próximo comando de
saída escreva na linha seguinte.
11.9. Formatação
A formatação serve para formatar os dados de saída na tela ou na impressora.
WRITE(X:m:n);
WRITELN(X:m:n);
Instituto de Química – UNESP – Araraquara
27
Introdução à Computação
onde: X é o valor a ser escrito podendo ser do tipo real, inteiro, string, etc.
m é um número inteiro que indica o número mínimo de caracteres que serão utilizados para
escrever o valor de X.
n só deve ser utilizado se X for do tipo real, e especifica o número de casas decimais desejado.
Obs. Caso m seja insuficiente para representar o valor de X, então será alocado número de
caracteres necessário para representá-lo. Caso m seja excessivo, o espaço excedente será preenchido com
brancos antes do valor de X.
Suponhamos que N := 13.58;
WRITE(N)
WRITE(N:7:2)
WRITE(N:5:2)
WRITE(N:5:1)
WRITE(N:4:0)
WRITE(N:0:1)
WRITE(N:0:0)
1.3580000000E+01
 13.58
13.58
 13.6
 14
13.6
14
Suponhamos que NOME := 'PAULO'
WRITE(NOME)
WRITE(NOME:8)
PAULO

PAULO
11.10. Estruturas Sequenciais
São sequências de comandos de atribuição, comandos de entrada ou de saída.
Exemplo 11.1.
Programa para ler o consumo mensal de energia elétrica em kWh e imprimir o valor da conta de
energia, supondo que 1 kWh custa R$ 3,00 e não há imposto nenhum envolvido no cálculo da conta.
Program Energia_Eletrica;
Var consumo: integer;
conta: real;
Begin
readln(consumo);
conta:= consumo*3.00;
writeln('Valor da conta = R$ ', conta:0:2);
readln;
End.
11.11. Estruturas Condicionais
11.11.1. Estrutura Condicional Simples
A estrutura condicional simples permite executar um comando (ou bloco de comandos) quando
uma condição for verdadeira. Uma condição é uma comparação que pode ser verdadeira ou falsa.
No trecho abaixo, se a condição1 for verdadeira, o comando1 será executado.
Instituto de Química – UNESP – Araraquara
28
Introdução à Computação
IF condição1
THEN comando1;
Exemplo 11.2.
Programa para ler a idade e imprimir a mensagem Menor de idade, caso a idade seja inferior a 18
anos.
Program Menor_de_idade;
Var idade: integer;
Begin
readln(idade);
if idade < 18
then writeln('Menor de idade');
readln;
End.
Quando você deseja que mais que um comando sejam executados caso uma condição seja
verdadeira, você deve utilizar Begin e End para delimitar os comandos que serão executados.
No trecho a seguir, se a condição1 for verdadeira, então o comando1 e o comando2 serão
executados. O comando3 será executado independentemente da condição1, porque ela está depois do
End, e portanto fora da estrutura condicional.
IF condição1
THEN Begin
comando1;
comando2;
End;
comando3;
Abaixo, se a condição1 for verdadeira, o comando1 será executado. O comando2 e o comando3
sempre serão executados, independentemente da condição1. Isto é devido ao fato que não há a palavra
Begin logo após a palavra THEN. Desta forma, o compilador interpretará que somente o comando1 faz
parte da estrutura condicional e os demais comandos estão fora da estrutura condicional. Portanto, o
comando2 e o comando3 serão executados independentemente da condição1, ou seja, sempre serão
executados.
IF condição1
THEN comando1;
comando2;
comando3;
Exemplo 11.3.
Programa para ler o raio e caso o raio lido seja positivo, calcular e imprimir a área do círculo.
Program Area_do_Circulo;
Var raio, area: real;
Begin
readln(raio);
if raio > 0
then Begin
area:= pi*sqr(raio);
writeln('Area do circulo = ', area);
Instituto de Química – UNESP – Araraquara
29
Introdução à Computação
End;
readln;
End.
11.11.2. Estrutura Condicional Composta
A estrutura condicional composta permite executar um comando (ou bloco de comandos) quando
uma condição for verdadeira e outro comando (ou bloco de comandos) quando a condição for falsa.
No trecho abaixo, caso a condição1 seja verdadeira, o comando1 será executado e caso contrário,
isto é, se a condição1 for falsa, o comando2 será executado.
IF condição1
THEN comando1
ELSE comando2;
No trecho abaixo, caso a condição1 seja verdadeira, o comando1 será executado e caso contrário, o
comando2 e comando3 serão executados.
IF condição1
THEN comando1
ELSE Begin
comando2;
comando3;
End;
Exemplo 11.4.
Programa para ler a nota da prova e do trabalho, e imprimir Reprovado, caso a nota da prova ou do
trabalho seja menor do que 5 e caso contrário, imprimir Aprovado e a média dada pela fórmula:
4 P+ T
M=
.
5
Program Notas;
Var prova, trabalho, media: real;
Begin
readln(prova, trabalho);
if (prova < 5) or (trabalho < 5)
then writeln(‘Reprovado’)
else Begin
writeln(‘Aprovado’);
media:= (4*prova + trabalho)/5;
writeln(‘Media = ‘, media);
End;
readln;
End.
Instituto de Química – UNESP – Araraquara
30
Introdução à Computação
11.12. Estruturas de Repetição
11.12.1. Estrutura de Repetição WHILE (Enquanto)
Esta estrutura de repetição permite que um comando (ou uma sequência de comandos) seja(m)
repetido(s) enquanto uma condição for verdadeira. O teste da condição fica no início da repetição e
portanto, existe a possibilidade da repetição não ser executada nenhuma vez, caso a condição assuma valor
falso na primeira verificação.
No trecho abaixo, somente o comando1 será repetido enquanto a condição for verdadeira. O
comando2 e o comando3 só serão executados uma vez, após terminar a repetição, isto é, após a condição
assumir valor falso.
WHILE condição DO
comando1;
comando2;
comando3;
Caso você queira que os 3 comandos (comando1, comando2 e comando3) sejam repetidos, você
deve delimitá-los com as palavras Begin e End.
No trecho a seguir, os comandos 1, 2 e 3 serão repetidos enquanto a condição for verdadeira e o
comando4 só será executado após a condição tornar-se falsa.
WHILE condição DO
Begin
comando1;
comando2;
comando3;
End;
comando4;
Exemplo 11.5.
Programa para imprimir a soma dos números pares positivos menores que 50.
Program Soma_Pares;
Var N, S: integer;
Begin
N:= 2;
S:= 0;
While N < 50 do
Begin
S:= S + N;
N:= N + 2;
End;
writeln(‘Soma = ‘, S);
readln;
End.
Instituto de Química – UNESP – Araraquara
31
Introdução à Computação
11.12.2. Estrutura de Repetição REPEAT (Repita)
Esta estrutura de repetição faz o teste da condição no final da repetição. Portanto, os comandos
são repetidos até que uma condição seja satisfeita. Assim, quando a condição for verdadeira, a repetição é
terminada e o comando situado abaixo da repetição é executado. Neste tipo de estrutura de repetição, os
comandos delimitados pelas palavras REPEAT e UNTIL serão executados pelo menos uma vez.
No trecho abaixo, os comandos 1, 2 e 3 serão repetidos até que a condição seja satisfeita. Quando
a condição for satisfeita (verdadeira), o comando4 será executado.
REPEAT
comando1;
comando2;
comando3;
UNTIL condição;
comando4;
Exemplo 11.6.
Programa para imprimir a soma dos números pares positivos menores que 50, análogo ao do
exemplo anterior, porém usando a estrutura REPEAT.
Program Soma_Pares;
Var N, S: integer;
Begin
N:= 2;
S:= 0;
Repeat
S:= S + N;
N:= N + 2;
Until N >= 50;
writeln(‘Soma = ‘, S);
readln;
End.
11.12.3. Estrutura de Repetição FOR (Para)
Esta estrutura de repetição só pode ser usada quando se conhece o valor inicial e o valor final que a
variável (que controla a repetição) deve assumir. A variável muda de valor, do valor inicial até o valor final,
de 1 em 1, incrementando automaticamente. Portanto, o valor inicial deve ser menor do que o valor final.
FOR variável := valor inicial TO valor final DO
BEGIN
comando1;
comando2;
END;
Exemplo 11.7.
Programa para imprimir a soma dos números inteiros entre 20 e 40 (inclusive os extremos).
Instituto de Química – UNESP – Araraquara
32
Introdução à Computação
Program Soma_inteiros;
Var N, S: integer;
Begin
S:= 0;
For N:= 20 to 40 do
S:= S + N;
writeln(‘Soma = ‘, S);
readln;
End.
Quando é utilizado DOWNTO ao invés de TO, a variável, que controla a repetição, é decrementada
automaticamente de 1 em 1. Neste caso, o valor inicial deve ser maior do que o valor final.
FOR variável := valor inicial DOWNTO valor final DO
BEGIN
comando1;
comando2;
END;
Exemplo 11.8.
Programa para imprimir a soma dos números inteiros entre 20 e 40 (inclusive os extremos), análogo
ao do exemplo anterior, porém usando a estrutura de repetição FOR DOWNTO DO.
Program Soma_inteiros;
Var N, S: integer;
Begin
S:= 0;
For N:= 40 downto 20 do
S:= S + N;
writeln(‘Soma = ‘, S);
readln;
End.
11.13. Declaração de Constantes
Constantes são valores fixos que não são alterados durante a execução do programa. Podem ser
associados identificadores (nomes) às constantes, e neste caso, as constantes devem ser declaradas antes
das variáveis.
Exemplo de declaração:
CONST e = 2.718281828459;
N = 50;
salario = 800.00;
Observação: Na declaração de constantes deve ser utilizado o sinal = (igual) e não : (dois pontos)
como no caso de declaração de variáveis.
11.14. Comentários
Os comentários são colocados nos programas para aumentar a clareza e são ignorados pelo
compilador. Os comentários devem ser colocados entre chaves ou entre parênteses e asterisco.
Instituto de Química – UNESP – Araraquara
33
Introdução à Computação
Exemplo: { Este é um exemplo de comentário }
(* Este também é um exemplo de comentário *)
11.15. Estruturas de Dados
Variável estruturada é um conjunto de dados, referenciável por um único identificador (nome).
11.15.1. Variáveis Compostas Homogêneas
As variáveis compostas homogêneas são conjuntos de dados do mesmo tipo e podem ser
unidimensionais ou multidimensionais. Essas variáveis são chamadas de Arrays.
11.15.1.1. Variáveis Compostas Homogêneas Unidimensionais
Variáveis Compostas Homogêneas Unidimensionais ou Vetores são variáveis capazes de armazenar
vários elementos do mesmo tipo e necessitam de apenas 1 índice para individualizar um elemento do
conjunto.
Exemplo de declaração:
VAR X: ARRAY[0..10] of integer;
condutividade: ARRAY[-100..100] of real;
nome: ARRAY[1..50] of string;
nome
nome[1]

Ana
nome[2]

Denise
nome[3]

Milton
...
nome[50]

Tania
Exemplo 11.9.
Programa para ler 5 nomes e armazenar em um vetor e depois imprimir o conteúdo do vetor.
Program Vetor;
Const N=5;
Var nome: array[1..N] of string;
i: integer;
Begin
For i:= 1 to N do
readln(nome[i]);
For i:= 1 to N do
writeln(nome[i]);
readln;
End.
11.15.1.2. Variáveis Compostas Homogêneas Bidimensionais
Variáveis Compostas Homogêneas Bidimensionais são variáveis capazes de armazenar vários
elementos do mesmo tipo e necessitam de 2 índices para individualização de um elemento. Essas variáveis
são chamadas também de Matrizes.
Exemplo de declaração:
Instituto de Química – UNESP – Araraquara
34
Introdução à Computação
VAR tabela: ARRAY[1..5,1..3] of real;
escaninho: ARRAY[1..8,1..8] of string;
matriz: ARRAY[1..3,1..3] of integer;
matriz[1,1] matriz[1,2]


6
-1
0
matriz
2
8
14
-5
9
7
 matriz[1,3]
 matriz[2,3]
 matriz[3,3]


matriz[3,1] matriz[3,2]
Exemplo 11.10.
Programa para ler 12 números e armazenar em uma matriz 3x4 e depois imprimir os elementos
desta matriz.
Program Matriz;
Var M: array[1..3,1..4] of integer;
i,j: integer;
Begin
For i:= 1 to 3 do
For j:= 1 to 4 do
readln(M[i,j]);
For i:= 1 to 3 do
begin
For j:= 1 to 4 do
write(M[i,j]:6);
writeln;
end;
Readln;
End.
Instituto de Química – UNESP – Araraquara
35
Introdução à Computação
12. Exercícios
abaixo:
1. Considere os valores das variáveis a seguir e determine o resultado das expressões lógicas
A 2
B  -3
C  1.5
ano  1996
objeto  ‘livro’
fim  verdadeiro
a) objeto = ‘computador’ ou A+B/A = C/B
b) 3*A+B >= 2*C e ano = 2005
c) TRUNC(C) <= ABS(A+B) ou 8*C MOD 5 = A e SQR(B) > -A*B*C
d) não(fim) ou ROUND(C) <= 2*A
e) objeto = ‘livro’ e ABS(B+C) <> C
f) SQRT(2*A-A*B*C+2*C) = 2-B e ano <> 2000
2. Determine os valores das variáveis numéricas X, Y e Z após a execução dos comandos abaixo:
X  31 MOD 4
Y  ROUND(4.5)
Z  TRUNC(2.6) -2*X
X  SQRT(X*Y-2*Z+2) + Z
Y  ROUND(ABS(Z) + Y/2)
Z  X + 3*Z MOD 8
3. Em quais dos seguintes pares é importante a ordem dos comandos? Isto é, em quais pares
quando se muda a ordem dos comandos os resultados finais se alteram?
a) A  C
BD
b) B  A
CB
c) B  A
BC
d) A  B
BA
4. Baseado nos valores de entrada L1 e L2, que constituem a base e a altura de um triângulo, o que
significa o valor de saída X?
início
L1, L2
X  L1*L2/2
X
fim
5. Elabore um fluxograma para ler uma temperatura dada na escala Celsius (C) e imprimir a
equivalente temperatura em Fahrenheit (F).
9
F= C+32
5
Instituto de Química – UNESP – Araraquara
36
Introdução à Computação
6. Elabore um fluxograma para ler o raio (R) de um círculo e imprimir a sua área. Sabe-se que:
Área = R2.
7. Elabore um fluxograma para ler a idade de um aluno e imprimir uma mensagem dizendo se ele é
menor de idade ou maior de idade.
8. Elabore um fluxograma para ler um número e imprimir uma mensagem dizendo se o número lido
é par ou ímpar.
9. Elabore um fluxograma para ler um número e imprimir uma mensagem dizendo se o número é
positivo, negativo ou nulo.
10. Dado o seguinte fluxograma:
início
V
V
V
F
condição2
comando1
F
condição1
comando2
condição3
F
comando4
comando5
comando3
fim
Responda :
a) Se condição1 = V, condição2 = V e condição3 = F, quais os comandos executados ?
b) Se condição1 = F, condição2 = V e condição3 = V, quais os comandos executados ?
c) Se condição1 = V, condição2 = F e condição3 = F, quais os comandos executados ?
d) Quais os valores de condição1, condição2 e condição3 para que nenhum comando seja
executado ?
11. Elabore um fluxograma para ler um número e imprimir uma mensagem dizendo se o número
lido é inteiro ou se o número tem a parte decimal.
12. Elabore um fluxograma para ler um ano e imprimir uma mensagem dizendo se o ano lido é
bissexto ou não.
Utilize a seguinte regra: Um ano é bissexto se:
- é divisível por 4 e não é divisível por 100, ou
- é divisível por 400.
Exemplos:
2008 é bissexto porque 2008 é divisível por 4 e não é divisível por 100.
2000 é bissexto porque é divisível por 400.
1900 não é bissexto porque apesar de ser divisível por 4, é também divisível por 100, e por outro
lado, não é divisível por 400.
Instituto de Química – UNESP – Araraquara
37
Introdução à Computação
13. Elabore um fluxograma para ler os valores dos coeficientes a, b, e c de uma equação do
segundo grau, e imprimir a única raiz real, ou as duas raízes reais, ou uma mensagem dizendo que as raízes
são complexas.
14. Elabore um fluxograma para ler 3 números e imprimir o maior deles.
15. Uma empresa está dando um reajuste aos seus funcionários de acordo com o seguinte critério:
25% para os funcionários que recebem até R$ 500,00 (inclusive);
20% para os funcionários que recebem entre R$ 500,01 e R$ 1.000,00 (inclusive);
15% para os funcionários que recebem acima de R$ 1.000,00.
Elabore um fluxograma para ler o salário de um funcionário e imprimir o seu salário reajustado.
16. O que faz o seguinte fluxograma ?
início
N1
N <= 15
F
V
N
N  N+2
fim
17. Elabore um fluxograma para imprimir os números pares positivos menores que 100.
18. O que será impresso ao final de cada um dos seguintes fluxogramas ?
Instituto de Química – UNESP – Araraquara
38
Introdução à Computação
a)
b)
início
início
X0
Y0
X0
Y0
X<2
F
X >= 0
X  X+1
Y  Y+2
V
X  X+1
Y  Y+2
Y
Y
fim
fim
V
c)
F
F
d)
início
início
X0
Y0
X0
Y0
X  X+1
Y  Y+2
X  X+1
Y  Y+2
F
X<2
X=3
V
V
Y
Y
fim
fim
19. Elabore um fluxograma para imprimir os 10 primeiros números positivos múltiplos de 6.
20. Elabore um fluxograma para imprimir N termos de uma Progressão Aritmética (PA) de
elemento inicial a e razão r. Os valores de N, a e r devem ser lidos inicialmente.
21. Elabore um fluxograma para ler a idade de 500 vestibulandos e imprimir quantos desses
vestibulandos são menores de idade.
Instituto de Química – UNESP – Araraquara
39
Introdução à Computação
22. Elabore um fluxograma para calcular e imprimir a soma dos números entre 1 e 10 inclusive.
23. Elabore um fluxograma para calcular e imprimir a soma dos números inteiros positivos ímpares
inferiores ou iguais a um número N (positivo) lido inicialmente.
24. Elabore um fluxograma para calcular e imprimir o produto dos números inteiros entre 1 e 15
(inclusive).
25. Elabore um fluxograma para ler um número e calcular e imprimir o fatorial deste número.
26. Elabore um fluxograma para ler o saldo de 1500 clientes de uma agência bancária, e imprimir:
a) o saldo médio desses clientes;
b) a porcentagem de clientes com saldo devedor.
27. Elabore um fluxograma para ler 2 números e imprimir o Máximo Divisor Comum (MDC) entre
esses números.
Exemplo: MDC entre 15 e 54 é 3 pois:
Quociente =
3
54 15
Resto = 9
1
9
6
1
6
3
2
3
0
MDC
28. Elabore um fluxograma para ler o nome e a nota de 70 alunos e imprimir:
a) quantos alunos foram reprovados (nota inferior a 5,0).
b) a maior nota e o nome do(a) aluno(a) que obteve essa nota.
29. Elabore um fluxograma para ler o nome, a idade e o sexo de 50 funcionários de uma empresa, e
imprimir:
a) a idade média dos funcionários do sexo masculino;
b) a porcentagem de funcionários do sexo feminino, com idade superior a 30 anos;
c) a menor idade e o nome do(a) funcionário(a) que possui essa idade.
30. Elabore um fluxograma para ler o saldo de 800 clientes de uma agência bancária e imprimir:
a) a porcentagem de clientes com saldo devedor;
b) o maior e o menor saldo.
31. Elabore um programa em Pascal para ler 2 números e calcular e imprimir a média aritmética
destes números.
32. Elabore um programa em Pascal para ler a medida da base e da altura de um triângulo e
imprimir a área deste triângulo.
33. Um marceneiro precisa cortar vários pedaços de madeira de comprimento = 45 cm cada um.
Elabore um programa em Pascal para ler o comprimento da tábua (em metros) e imprimir a quantidade de
pedaços e a sobra (em centímetros). Exemplo: Caso o comprimento da tábua seja 5 m, a quantidade de
pedaços será 11 e a sobra será de 5 cm.
34. Uma entidade filantrópica faz sorteios cujos bilhetes contém números de 3 dígitos. O sorteio é
baseado no primeiro prêmio da loteria federal, sendo o número sorteado formado pelos três últimos
dígitos do primeiro prêmio na ordem inversa. Por exemplo, se o primeiro prêmio for 51782, o número
sorteado será 287. Elabore um programa em Pascal para ler o número do primeiro prêmio da loteria
federal (de 5 dígitos) e imprimir o número sorteado.
Instituto de Química – UNESP – Araraquara
40
Introdução à Computação
35. Elabore um programa em Pascal para ler a nota de um aluno e imprimir uma mensagem
dizendo se ele foi aprovado (nota  5,0) ou reprovado.
36. Elabore um programa em Pascal para ler 2 números, e escrever se o primeiro número é maior,
menor ou igual ao segundo.
37. Elabore um programa em Pascal para ler o salário de um funcionário e imprimir o percentual de
reajuste e o salário reajustado de acordo com a seguinte tabela:
Salário
até R$ 1.000,00
Reajuste
15%
acima de R$ 1.000,00 até R$ 2.000,00
12,5%
acima de R$ 2.000,00
10%
38. Um casal divide as despesas domésticas mensalmente. Durante o mês, cada um anota as
despesas que paga e no final eles dividem a despesa total ao meio. Elabore um programa em Pascal para ler
as despesas pagas por cada um e imprimir quem deve a quem e o valor da dívida. Lembre que pode
acontecer de nenhum precisar pagar para o outro, caso já tenham pago exatamente a metade das
despesas. Exemplo:
ITEM
Despesas Pagas
Valor Devido
Diferença
MARIDO
2000,00
1700,00
300,00
ESPOSA
1400,00
1700,00
-300,00
TOTAL
3400,00
No exemplo acima, o programa deve imprimir a seguinte mensagem: A esposa deve pagar R$
300,00 ao marido.
39. Elabore um programa em Pascal para ler os lados de um triângulo e testar inicialmente se é
possível formar um triângulo. Caso seja possível formar um triângulo, o programa deve imprimir uma
mensagem informando o tipo de triângulo formado: equilátero, isósceles ou escaleno. Caso contrário, o
programa deve imprimir uma mensagem informando que não é possível formar um triângulo.
40. Um supermercado está dando descontos no valor das compras, segundo a tabela abaixo:
Valor da compra
Desconto
até R$ 50,00
0%
de R$ 50,01 a R$ 100,00
10%
acima de R$ 100,00
15%
Elabore um programa em Pascal para ler o valor da compra de 80 clientes e imprimir para cada
cliente o valor a pagar com o desconto.
41. O que vai ser impresso no final de cada trecho do programa em Pascal abaixo:
a) A := 0;
B := 0;
While A < 3 do
B := B + 2;
A := A + 1;
writeln(A);
b) A := 0;
B := 0;
While A < 2 do
begin
B := B + 2;
A := A + 1;
end;
writeln(B);
Instituto de Química – UNESP – Araraquara
41
Introdução à Computação
c) A := 0;
B := 0;
Repeat
A := A + 1;
B := B + 2;
until A > 2;
writeln(B);
d) A := 0;
B := 0;
Repeat
A := A + 1;
B := B + 2;
until A < 3;
writeln(B);
e) B := 0;
For A := 1 to 3 do
B := B + 2;
writeln(B);
f) B := 0;
For A := 4 downto 1 do
B := B + 2;
writeln(B);
42. Um atleta faz flexões em série, com quantidades crescentes: na primeira série faz 1 flexão, na
segunda série faz 2 flexões, na terceira série faz 3 flexões e assim por diante. Ao final de algumas séries, ele
quer saber a quantidade total de flexões que fez. Por exemplo, se ele fez 5 séries, fez ao todo 15 flexões
(1+2+3+4+5). Elabore um programa em Pascal para ler o número de séries e imprimir o total de flexões.
43. Elabore um programa em Pascal para ler um número e calcular o fatorial deste número, usando
a estrutura FOR DOWNTO DO.
44. Elabore um programa em Pascal para ler o nome, a nota da primeira prova (P1) e a nota da
segunda prova (P2) de 50 alunos. O programa deve imprimir:
a) a média (M) de cada aluno, onde M =
3P1 + 5P 2
;
8
b) a porcentagem de alunos aprovados (M  5,0);
c) a maior média e o nome do(a) aluno(a) que obteve essa média.
45. O que faz o seguinte programa em Pascal ?
Program Exercicio45;
var N, S : integer;
begin
S:= 0;
writeln(´Digite um numero inteiro.´);
readln(N);
While N <> 0 do
begin
if (N>0) and (N mod 2 = 0)
then S:= S + N ;
writeln(´Digite outro numero inteiro, ou digite 0 para terminar.´);
readln(N);
end;
writeln(S);
readln;
end.
46. Elabore um programa em Pascal para ler o nome e o preço de um número indeterminado de
mercadorias, sendo o fim de dados identificado pelo nome = FIM. O programa deve imprimir:
a) o preço médio dessas mercadorias;
b) o maior preço e o nome da mercadoria de maior preço.
Instituto de Química – UNESP – Araraquara
42
Introdução à Computação
47. Elabore um programa em Pascal para ler o nome, o sexo e o salário de um número
indeterminado de funcionários de uma loja, sendo o fim de dados identificado pelo nome = FIM. O
programa deve imprimir:
a) o salário médio dos homens e o salário médio das mulheres;
b) a porcentagem de funcionários do sexo masculino;
c) o nome do(a) funcionário(a) que recebeu o maior salário, e o respectivo salário.
48. Elabore um programa em Pascal para ler o nome e saldo de um número indeterminado de
clientes de um banco, sendo o fim de dados identificado pelo nome = FIM. O programa deve imprimir:
a) o saldo médio dos clientes;
b) a porcentagem de clientes com saldo devedor;
c) o nome do cliente que possui o menor saldo e o respectivo saldo.
49. Elabore um programa em Pascal para ler 3 números (x, y, N) e imprimir os N primeiros números
naturais que são múltiplos de x ou de y.
Exemplo: caso x=3, y=7 e N=8, o programa deve imprimir: 3 6 7 9 12 14 15 18
50. Elabore um programa em Pascal para ler um número e imprimir uma mensagem dizendo se o
número lido é primo ou não. Pode-se supor que o número lido é maior do que 1. Obs. Um número é primo
se ele é divisível somente por 1 e por ele mesmo.
51. Elabore um programa em Pascal para imprimir os N primeiros números da Sequência de
Fibonacci. O número N (N  2) deve ser lido inicialmente. A Sequência de Fibonacci é definida como tendo o
primeiro termo igual a 0, o segundo termo igual a 1 e cada termo seguinte igual a soma dos dois termos
imediatamente anteriores.
Sequência de Fibonacci: 0 1 1 2 3 5 8 13 21 34 ...
52. Elabore um programa em Pascal para ler 10 números e armazená-los em uma variável
composta unidimensional (vetor) e determinar o maior número.
53. Elabore um programa em Pascal para ler as temperaturas máximas registradas nos últimos 30
dias e imprimir:
a) a menor temperatura máxima registrada;
b) a maior temperatura máxima registrada;
c) a média das temperaturas máximas registradas nestes 30 dias;
d) o número de dias em que a temperatura máxima foi superior à média das temperaturas
máximas registradas.
54. Elabore um programa em Pascal para ler os nomes e os pesos de 20 judocas e armazená-los em
vetores denominados NOME e PESO. O programa deve imprimir:
a) o maior peso;
b) os nomes dos judocas que têm o maior peso;
55. Um armazém trabalha com 250 mercadorias diferentes identificadas pelos números inteiros de
1 a 250. O dono do armazém possui 3 tabelas, uma com o nome de cada mercadoria, outra com o preço de
cada mercadoria, e uma outra tabela com a quantidade de cada mercadoria vendida no mês.
Elabore um programa em Pascal para ler o nome, o preço e a quantidade de mercadorias vendidas
e armazená-los em variáveis compostas unidimensionais (vetores) denominadas MERCADORIA, PRECO e
QUANTIDADE e imprimir:
a) os nomes das mercadorias que possuem o maior preço;
b) os nomes das mercadorias que não foram vendidas nenhuma unidade;
c) o faturamento mensal do armazém.
Instituto de Química – UNESP – Araraquara
43
Introdução à Computação
56. Elabore um programa em Pascal para ler o nome e a nota de 60 alunos e armazenar os nomes
dos alunos aprovados (nota  5,0) no vetor denominado APROVADO e os nomes dos alunos reprovados no
vetor denominado REPROVADO. No final o programa deve imprimir:
a) o número de alunos aprovados;
b) a lista dos nomes dos alunos aprovados;
c) o número de alunos reprovados;
d) a lista dos nomes dos alunos reprovados.
57. Elabore um programa em Pascal para ler o nome e o salário de um número indeterminado de
funcionários de uma empresa, sendo o fim de dados identificado pelo nome = FIM. O programa deve
imprimir:
a) o salário médio;
b) a porcentagem de funcionários que recebem acima de R$ 5.000,00;
c) o maior salário e os nomes dos funcionários que recebem esse salário (usar vetor).
58. Elabore um programa em Pascal para imprimir o signo do zodíaco correspondente a uma data
(dia e mês) lida.
A tabela abaixo mostra o último dia de cada mês e o signo correspondente.
mês
1
2
3
4
5
6
7
8
9
10
11
12
último dia
20
19
20
20
20
20
21
22
22
22
21
21
signo
Capricórnio
Aquário
Peixes
Áries
Touro
Gêmeos
Câncer
Leão
Virgem
Libra
Escorpião
Sagitário
Obs: De 22/12 a 31/12 – Capricórnio
59. Elabore um programa em Pascal para ler o número do voo e a quantidade disponível de vagas
de 30 voos diários de uma companhia aérea e armazenar em vetores denominados VOO e VAGAS. Em
seguida o programa deve ler o número do voo e o número de vagas a reservar neste voo, de um número
indeterminado de voos, sendo o fim dos dados identificado pelo número do voo = 0. Para cada número de
voo, o programa deve atualizar o vetor VAGAS.
No final, o programa deve imprimir todos os números de voos e as respectivas vagas.
13. Bibliografia
ASCENCIO, A.F.G.; CAMPOS, E.A.V. Fundamentos da Programação de Computadores.
Computadores. 3a ed. Pearson, 2012.
584 p.
AVILLANO, I.C. Algoritmos e Pascal.
Pascal. 2a ed. Ciência Moderna, 2006. 560 p.
FARRER, H. et al. Algoritmos Estruturados.
Estruturados. 3a ed. LTC, 1999. 260 p.
FARRER, H. Pascal Estruturado.
Estruturado. 3a ed. LTC, 1999. 300 p.
Instituto de Química – UNESP – Araraquara
44
Download