unileste - apostila fundamentos da computação i

46
Centro Universitário do Leste de Minas Gerais UNILESTEMG Fundamentos da Computação I Autor: Prof. Mauro Morais de Miranda Co-autores: Profª Deisymar Botega Tavares Prof. Marcelo Balbino Profª Renata Vieira Dias

Upload: edmilson-faustino

Post on 19-Jan-2016

35 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Unileste - Apostila Fundamentos Da Computação I

Centro Universitário do Leste de Minas Gerais UNILESTEMG

Fundamentos da Computação I

Autor: Prof. Mauro Morais de Miranda Co-autores: Profª Deisymar Botega Tavares

Prof. Marcelo Balbino Profª Renata Vieira Dias

Page 2: Unileste - Apostila Fundamentos Da Computação I

Introdução a Hardware e Software....................................................................................................................1

Histórico ........................................................................................................................................................1 Conceitos básicos ..........................................................................................................................................1

Computação.......................................................................................................................................................7 Algoritmos.........................................................................................................................................................7

Por que precisamos de Algoritmos? ..............................................................................................................7 Classificação dos Dados: Constantes X Variáveis ........................................................................................9 Tipos Primitivos de Dados ..........................................................................................................................10 Formação de Identificadores - Nome de variável ........................................................................................10 Declaração de Variáveis ..............................................................................................................................11 Comando de Atribuição...............................................................................................................................11 Comando de Entrada ...................................................................................................................................11 Comando de Saída .......................................................................................................................................11 Expressões Aritméticas................................................................................................................................11 Exercícios – Variáveis e Tipos de Variáveis – Comandos Básicos.............................................................12 O uso do operador de adição em variáveis do tipo caracter ........................................................................12

ESTRUTURAS DE CONTROLE – Estrutura Seqüencial .............................................................................13 Exemplos – Estrutura Seqüencial ................................................................................................................13 Exercícios – Estrutura de Seqüencial ..........................................................................................................14

ESTRUTURAS DE CONTROLE – Estrutura Condicional ...........................................................................17 Expressões Lógicas......................................................................................................................................17 Operadores Lógicos.....................................................................................................................................17 Prioridades...................................................................................................................................................17 Exercícios de Operadores lógicos e relacionais...........................................................................................18 Estrutura Condicional Simples ....................................................................................................................18 Estrutura Condicional Composta.................................................................................................................18 Exemplos – Estrutura Condicional Simples e Composta ............................................................................19 Exercícios – Algoritmos com Estrutura de Decisão ....................................................................................23 Exercícios Revisionais – Estrutura de Decisão ...........................................................................................23

ESTRUTURAS DE CONTROLE – Estrutura de Repetição ..........................................................................28 Comando de Repetição Enquanto................................................................................................................28 Exemplos de Algoritmos com Estrutura de Repetição ................................................................................29 Exercícios - Algoritmos com Estrutura de Repetição..................................................................................39

Referências Bibliográficas ..............................................................................................................................44

Page 3: Unileste - Apostila Fundamentos Da Computação I

1

Fundamentos da Computação I 2o Semestre / 2006

IInnttrroodduuççããoo aa HHaarrddwwaarree ee SSooffttwwaarree

Histórico

Até os fins da década de setenta os computadores estavam associados à idéia de máquinas grandes, de custo ele-vado, e inacessíveis às pessoas comuns. Embora indivíduos de maior poder aquisitivo pudessem adquiri-los, ninguém se dispunha a ocupar um enorme espaço físico (~ 100m2), com uma máquina que pouco tinha a oferecer para o uso domésti-co. Os chamados mainframes existiam para as empresas e exigiam profissionais altamente capacitados.

Os avanços tecnológicos levaram à criação dos circuitos integrados, mais conhecidos como chips, e através de um processo contínuo de evolução, permitiram a criação de computadores cada vez menores e com poder de processamento elevado. O produto mais conhecido gerado por esta tecnologia é o microcomputador (PC – Personal Computer).

Em 1981 o primeiro PC-IBM foi lançado no mercado. A partir desta data o computador passa a fazer parte de to-dos os ambientes: fábricas, escritórios, residências, etc...

Conceitos básicos

Computador

Um computador pode ser definido como uma máquina potencialmente capaz de executar tarefas, necessitando pa-ra isto de hardware adequado e um software compatível com o mesmo. Então podemos dizer que um computador tem duas partes diferentes que funcionam em conjunto:

Hardware, que em inglês significa equipamento pesado, é a parte física do computador. Componentes de memória, periféricos, cabos, placas e chips fazem parte dele;

Software é um programa, que, utilizando o hardware, executa as diferentes tarefas necessárias ao processa-mento de dados. Existem softwares de vários tipos; os mais importantes são:

♦ Software Básico ♦ Software Utilitário ♦ Software Aplicativo

Software Básico Responsável pelo gerenciamento dos componentes de hardware. Tem a função ainda de interagir entre o usuário e o hardware para facilitar a utilização dos recursos do sistema. Estes software são os chamados sistemas operacionais. Por exemplo: Windows 95, Windows 98, Linux, DOS.

Software Utilitário:

Se destina a realizar funções rotineiras e repetitivas requeridas pelo tipo de trabalho do usuário. Exemplos: Editores de Texto: WordPad, Word, Bloco de Notas; Planilhas: Lotus, Excel; Editores de Imagens: Paint, Corel Drawn, PhotoShop, Photo Editor; Editores de Apresentação: Power Point; Ferramentas de Internet: Internet Explorer, Netscape Navigator, WebMail, OutLook Express;

Software aplicativo:

Software desenvolvido com a função de coletar dados, armazená-los e emitir relatórios com informações que subsidiem o usuários em sua atividade fim.

Científicos - cálculos balísticos Comerciais - folhas de pagamento, contabilidade Simulação - tráfegos, grafos Controle De Processos - usinas nucleares, Petrobrás

Fluxo de processamento de dados

Para que um computador funcione são necessários no mínimo as 3 etapas destacadas a seguir:

Entrada – Onde são convertidos impulsos humanos em linguagem de máquina (leitura de dados).

Page 4: Unileste - Apostila Fundamentos Da Computação I

2

Fundamentos da Computação I 2o Semestre / 2006

Processamento – Onde as informações são analisadas, trabalhadas e enviadas a saída (execução dos cál-

culos). A CPU ou UCP (Unidade Central de Processamento) é o elemento responsável por coordenar, controlar ou realizar todas essas tarefas. Principais partes de CPU: ♦ Unidade de controle é a parte da CPU encarregada de comandar o resto das unidades. Interpreta as instru-

ções, controla sua execução e a seqüência que estas devem ser executadas. ♦ ULA (Unidade Aritmética-Lógica): é a parte da CPU encarregada de realizar as operações elementares, do ti-

po aritmético e lógico. (veja figura ilustrativa a seguir)

Saída – Onde as informações em linguagem de máquina são convertidas em sinais perceptíveis aos sensores hu-

manos (apresentação dos dados).

Periféricos

São dispositivos que são ligados ao computador. Quando esses dispositivos são ligados diretamente à placa-mãe (dentro do gabinete do computador) dizemos que esses dispositivos são integrados. Quando os dispositivos são ligados ao desktop (externamente) chamamos de periféricos não integrados.

Exemplos: Periféricos integrados: Disco rígido, unidade de disquetes, Modem (também pode ser externo). Periféricos não integrados: Monitor de vídeo (integrado somente nos laptops), impressoras.

A PLACA-MÃE

Também chamada de “mainboard” (placa principal) ou “motherboard” (placa mãe), é onde se aloja o componente principal do computador, o microprocessador, que, juntamente com os demais componentes da placa, definem a “persona-lidade” do aparelho.

PROCESSADOR

É um componente importantíssimo da Unidade Central de Processamento (CPU ou UCP), em redor do qual se constrói o computador. Existem diversos fabricantes; o mais conhecido é a Intel, por ser a que leva a dianteira do desen-volvimento tecnológico e tem a maior participação nas vendas, porém existem fabricantes alternativos que podem ser uma opção vantajosa: AMD e Cyrix oferecem componentes que rivalizam em performance e confiabilidade com os da Intel.

Upgrade

O upgrade, ou atualização, pode ser um fator determinante na escolha de um motherboard. Algumas placas vêm configuradas para operar apenas com um único tipo de processador, com poucos slots de expansão, poucos slots de ex-pansão para memória, deixando pouca chance de upgrade, o que no futuro pode acarretar grande decepção.

Outras placas, entretanto, são extremamente versáteis, permitindo o uso de uma ampla gama de microprocessado-res de diversos fabricantes e têm um grande número de conectores para colocação de chips de memória. É claro que as placas mais versáteis custam mais caro e são mais difíceis de se configurar, porém cabe ao montador escolher a que me-lhor se adapta ao uso em vista.

Bits e Bytes

A menor unidade de informação usada pelo computador é o bit. Este tem atribuições lógicas 0 ou 1. Cada um des-tes estados pode, internamente, ser representado por meios eletro-magnéticos (negativo/positivo, ligado/desligado, etc).

UNIDADES DE ENTRADA

UNIDADES DE SAÍDA

MEMÓRIA AUXILIAR

UCP OU CPU

Memória Principal (RAM)

Page 5: Unileste - Apostila Fundamentos Da Computação I

3

Fundamentos da Computação I 2o Semestre / 2006

É por isso que é mais fácil para armazenar dados em formato binário. Assim, todos os dados do compu-

tador são representados de forma binária. Mesmo os números são comumente representados na base 2, em vez da base 10, e suas operações são feitas na base 2.

Um conjunto de 8 bits é chamado de byte. Um byte pode ter até 28 = 256 configurações diferentes. O principal padrão usado para representar caracteres (’a’,’b’,’c’,...,’A’,’B’,’C’,...,’!’,’@’,’#’,’$’,...) é o padrão ASCII (American Stan-dard Code for Information Interchange), usada na maioria dos computadores. Cada um destes caracteres é representado por um byte. A tabela 1 apresenta o código de alguns caracteres no código ASCII.

Observe que: 1. As codificações para letras em maiúsculas e minúsculas são diferentes. 2. A codificação de ’B’ é a codificação de ’A’ somado de 1; a codificação de ’C’ é a codificação de ’B’ so-

mado de 1; assim por diante. Esta codificação permite poder comparar facilmente se um caracter vem an-tes do outro ou não. Internamente, verificar se o caracter ’a’ vem antes do ’b’, é verificar se o número bi-nário correspondente a ’a’ é menor que o número binário correspondente a ’b’.

3. As letras maiúsculas vêm antes das minúsculas.

Caracter Representação em ASCII Valor na base decimal ... ... ... ( 00101000 40 ) 00101001 41 * 00101010 42 + 00101011 43 ... ... ... 0 00110000 48 1 00110001 49 2 00110010 50 3 00110011 51 ... ... ... A 01000001 65 B 01000010 66 C 01000011 67 D 01000100 68 ... ... ... A 01100001 97 B 01100010 98 C 01100011 99 D 01100100 100 ... ... ...

Tabela 1 – Tabela ASCII

As denominações que constam na tabela 2 são comumente usadas na área de informática. Nome Memória

Bit {0,1}

Byte 8 bits

Kilobyte (Kbyte) 210 bytes (pouco mais de mil bytes (210 = 1024))

Megabyte (Mbyte) 220 bytes (pouco mais de um milhão de bytes ou pouco mais de mil Kbytes (210 = 1024 Kbytes))

Gigabyte (Gbyte) 230 bytes (pouco mais de um bilhão de bytes ou pouco mais de mil Mbytes (210 = 1024 Mbytes)) Tabela 2 – Bits e Bytes

Atualmente, configurações de computador com 128 ou 256 Megabytes de memória RAM, 40 Gigabytes de disco rígido, disco flexível de 1,44 Megabytes são muito comuns no mercado. Certamente esta configuração já será considerada pequena dentro de um ou dois anos, devido ao contınuo avanço da tecnologia nesta área.

Vejamos alguns exemplos de quanto e esta memória. Uma página de um livro, armazenada em formato ASCII, tem em torno de 50 linhas e 80 caracteres por linha. Assim, um livro de 1000 páginas teria algo em torno de 4.000.000 de caracteres, que poderiam ser guardados em 4 megabytes. Assim, um disco rígido de 4,2 Gigabytes poderia guardar em

Page 6: Unileste - Apostila Fundamentos Da Computação I

4

Fundamentos da Computação I 2o Semestre / 2006

torno de 1.000 livros deste tipo. Isto aparenta uma quantidade bastante grande de dados. Por outro lado, a maio-ria das aplicações atuais está fazendo uso cada vez maior de imagens, gráficos e sons. Estas aplicações demandam muita memória. Por exemplo, se você quiser representar uma imagem de tamanho 1000 X 1000 pontos (106 pontos), cada ponto com uma cor entre 65000 cores possíveis (dois bytes por ponto), gastaremos algo como 2 Megabytes para armazenar ape-nas uma imagem deste tipo. A quantidade de memória aumenta quando armazenamos filmes, que usam em torno de 30 imagens por segundo. Apesar do uso de métodos de compressão sobre estes tipos de dados a necessidade de grande quan-tidade de memória ainda é crucial para muitas aplicações.

MEMÓRIA RAM

A memória RAM é responsável por armazenar as informações utilizáveis por vários subsistemas do computador, notadamente por programas. A demanda e a oferta por memória sempre caminham juntas. É uma memória volátil, ou seja, os dados serão perdidos ao interromper o fornecimento de energia. Todo programa para ser executado deve antes ser car-regado para a memória RAM até que o processador possa manipula-lo.

O papel da memória RAM

O processador não possui uma capacidade de armazenamento interna muito grande. Por este motivo, precisa que os programas fiquem armazenados externamente a ele. Este papel cabe à memória (RAM). O processador está sempre em contato direto com a RAM (usando o DMA-Direc Memory Access), buscando programas (operação chamada “leitura”) e armazenando dados (operação chamada “escrita”).

Quando você “roda” um joguinho ou chama um processador de textos, o programa é transferido do disco para a memória (RAM), onde o processador irá ler o programa e executá-lo. Isto significa que, quando mais memória você tiver em seu micro, mais programas poderão estar “rodando” simultaneamente.

Graças a um recurso chamado de memória virtual, a memória RAM não acaba. O processador, sempre que neces-sário, cria no disco rígido um arquivo (chamado arquivo de troca) que “simula” mais memória RAM. Em um micro com apenas 32 MB de RAM o microprocessador pode “simular” que o micro possua 64 MB ou até mais. A parte que não fica armazenada na memória fica no arquivo de troca, no disco rígido.

Como o processador, para processamento, somente “enxerga” dados que estão na RAM, ele deverá “trocar” o conteúdo da memória RAM com o arquivo de memória virtual do disco rígido (e daí o nome “arquivo de troca”). O disco rígido, entretanto, é muito mais lento que a memória RAM. Quanto mais memória RAM o micro tiver, menos “estouros” de memória ocorrem. Com isto, menos vezes o processador terá que utilizar o recurso de memória virtual.

Conclusão: Um micro com mais memória RAM parecerá mais rápido que um outro que possua menos. Este au-mento de performance ocorre porque o processador precisará utilizar menos o recurso de memória virtual. Na prática dizemos que um micro será mais rápido se possuir mais memória RAM.

O que é o cache de memória

Vimos que o processador conversa diretamente com a memória RAM. Acontece que ela é mais lenta que o pro-cessador. Por isto, toda a vez em que o processador acessa à memória, ele fica esperando para que os dados sejam devi-damente entregues ou armazenados, dependendo se a operação é de leitura ou escrita.

Não nos parece interessante que o processador fique lento tanto tempo esperando, não é mesmo? Ao longo do tempo, o processador ficará um bom tempo fazendo absolutamente nada. Na prática, o micro perderá performance.

Para fazer com que o processador consiga conversar de igual com a RAM, entra na jogada uma memória mais rá-pida, chamada memória dinâmica ou simplesmente DRAM. A memória cache é capaz de conversar com o processador sem que ele precise ficar esperando, o que é excelente.

Acontece que este tipo de memória é muito grande e cara. No micro temos pequena porção deste tipo de memó-ria: ao invés de “falar” diretamente com a memória, o processador fala com o cache, que consegue “conversar” à mesma velocidade.

Nem sempre quando mais memória cache você tiver será melhor. O tamanho ideal de memória cache para o micro depende, sobretudo, da quantidade de memória RAM que o micro possua instalada.

Memória ROM (Ready Only Memory) - Memória apenas de leitura

Seu conteúdo é gravado durante o processo de fabricação. Este tipo de memória armazena programas e instruções de controle que são processados no momento em que o computador é ligado, para realizar as seguintes funções:

Checar o hardware, ou seja, testar o funcionamento dos principais componentes da máquina, como por exemplo: placas de memória RAM, drives, teclado, etc;

Carregar o sistema operacional.

Page 7: Unileste - Apostila Fundamentos Da Computação I

5

Fundamentos da Computação I 2o Semestre / 2006

Unidade de Disco Rígido

É o meio que pode armazenar o sistema operacional, programas, arquivos de textos, imagens, entre outros dados. È conhecido também pelas iniciais em inglês HD (Hard Disk – Disco Rígido). Sua capacidade de armazenamento e taxa de leitura e escrita atuais, são impressionantes, tornando o HD peça essencial na performance de muitos programas.

A unidade de medida da capacidade de armazenamento de dados nos HDs é a mesma utilizada para a memória RAM, o byte. Como a capacidade dos HDs é muito maior que o da RAM, o prefixo utilizado atualmente é o GB (gigaby-te) e não apenas o MB (megabyte). É fácil encontrar discos rígidos novos com capacidade em torno de 20 GB.

Existem duas especificações para os modelos de HD: IDE (Integrated Drive Eletronics – eletrônica integrada de drives) bastante popular por seu baixo preço e a SCSI (Interface reduzida de sistemas computadorizados) de maior uso no âmbito profissional e corporativo.

Os principais parâmetros para análise de um HD são a velocidade rotacional (também chamada de velocidade an-gular) medida em rpm, o tempo de acesso medido em ms e a taxa de transferência de dados medida em KB/s. É importan-te observar também, um parâmetro chamado MTBF (tempo médio entre falhas) que geralmente é dado em horas de uso contínuo e envolve diversas outras variáveis. O MTBF, também utilizado por outros equipamentos, indica o quão confiá-vel é o equipamento em uso geralmente intenso e sua durabilidade média.

Um bom HD tem um baixo tempo de acesso, alta taxa de transferência de dados e alta velocidade rotacional. Discos magnéticos são dispositivos para armazenamento de dados (que independem de alimentação de energia e

portanto permanecem gravados após ser desligado o computador, mas podem, a critério do usuário, ser apagados ou alte-rados). Os discos magnéticos englobam os discos flexíveis ou disquetes (“floppy disks”) e os discos rígidos.

Um disco magnético incorpora eletrônica de controle, motor para girar o disco, cabeças de leitura/ gravação e o mecanismo para o posicionamento das cabeças, que são móveis. Os discos propriamente ditos são superfícies de formato circular compostos de finos discos de alumínio ou vidro, revestidos de materiais magnetizáveis em ambas as faces.

As informações são gravadas nos discos em “setores”, distribuídos ao longo de “trilha” concêntricas marcadas magneticamente como setores circulares no disco.

O processo de marcação magnética das trilhas e setores em um disco faz parte da “Formatação” do disco. Esta formatação é dependente do sistema operacional que usará o disco.

Dado a grande quantidade de informações que são armazenadas em um disco rígido, e considerando-se que, devi-do a desgastes naturais durante o funcionamento, é inevitável que ocorra uma avaria algum dia, é importantíssimo preve-nir-se quanto à perda dessas informações realizando-se periodicamente cópias de segurança de seus arquivos, o que é conhecido tecnicamente como back-up.

DISCOS FLEXÍVEIS

As unidades de discos flexíveis (floppy disks ou FDs) surgiram como uma solução para armazenamento de dados a baixo custo em microcomputadores e substituíram com grandes vantagens o armazenamento em fitas cassete que equi-pava os primeiros microcomputadores. Os discos flexíveis são feitos de poliéster flexível e sua capacidade atual de arma-zenamento é geralmente de 1,44 Mbytes.

CD-ROM

Os CD-ROMs prestam-se ao armazenamento de grandes volumes de informação, tais como enciclopédias. A tec-nologia utilizada nos acionadores encontrados nos microcomputadores ainda não permite sua regravação devido ao alto custo envolvido. Os acionadores ou drives de discos CD-ROM podem reproduzir normalmente os CDs de áudio (o que significa que podemos ouvir músicas enquanto trabalhamos em nossos micros).

DVD – Digital Versatile (Video) Disc

Os DVDs são a última tecnologia em armazenamento de dados. Sua capacidade chega a aproximadamente 4,7 Gb. Tem uma característica importante, que é a regravação. Tendem a substituir as fitas de vídeo. É o futuro dos discos óticos digitais, a evolução da tecnologia Compact Disc. Assim como o CD (áudio) e o CD-ROM, o sistema DVD é com-posto de um CD player para ser ligado a TV, ou um DVD-ROM drive para uso em computadores. Além dos discos terem o mesmo tamanho e espessura dos atuais CDs, o DVD mais simples terá capacidade para 4,7 Gb (capacidade equivalente a mais do que 7 CD-ROMs), que é suficiente para conter mais de 2 horas de filme com alta qualidade de som e de ima-gem, além de áudio em 3 idiomas distintos e 4 conjuntos diferentes de legendas.

Page 8: Unileste - Apostila Fundamentos Da Computação I

6

Fundamentos da Computação I 2o Semestre / 2006

INTERNET

O que é Internet? Internet é o nome dado a uma rede de computadores espalhados pelo mundo que se comunicam entre si e trocam

informações. Todos os computadores que "entendem" esta espécie de língua comum são capazes de se comunicar com outros em qualquer lugar do mundo. Para se comunicar com um computador que fica na China, por exemplo, não é neces-sário fazer uma ligação internacional. Basta se conectar a um computador em sua cidade.

De onde surgiu a Internet?

A Internet surgiu de projetos conduzidos ao longo dos anos 60 pelo Departamento de Defesa dos Estados Unidos. Esses projetos visavam o desenvolvimento de uma rede de computadores para comunicação entre os principais centros militares de comando e controle que pudesse sobreviver a um possível ataque nuclear.

Nos últimos dois anos, o interesse comercial pelo uso da Internet cresceu bastante, devido ao interesse dos diver-sos setores da sociedade: universidades, empresas, cooperativas, escolas, prefeituras e nas próprias residências.

Por que a Internet é importante?

Porque pela primeira vez no mundo um cidadão comum ou uma pequena empresa pode (facilmente e a um custo muito baixo) não só ter acesso a informações localizadas nos mais distantes pontos do mundo criar, gerenciar e distribuir informações.

Com a Internet uma pessoa qualquer (um jornalista, por exemplo) pode, de sua própria casa, oferecer um serviço de informação baseado na Internet, a partir de um microcomputador, sem precisar da estrutura que no passado só uma empresa de grande porte poderia manter.

O que é URL?

É o endereço da página, que permite aos computadores encontrarem o que o usuário busca, de maneira uniforme. Veja alguns exemplos de URL:

www.ufac.br www.mama.org.br www.uol.com.br

O que é Site? Um site é um conjunto de informações públicas armazenado num computador servidor da Internet. Qualquer pes-

soa pode solicitar estas informações ao servidor sempre que quiser. Existem sites de notícias, de empresas, de revistas, de organizações, de governos, etc. Imagine a Internet como uma grande biblioteca e os sites como livros, que apesar de esta-rem espalhados pelo mundo podem ser abertos na tela do computador a qualquer momento. Exemplos de Site:

Museu de Arte do Rio de Janeiro (Ex: www. mamrio.com.br) Jornal (Ex: www.jornalatribuna.com.br) Governo (Ex: www.ac.gov.br) Supermercado (Ex: www.paodeacucar.com.br)

Page 9: Unileste - Apostila Fundamentos Da Computação I

7

Fundamentos da Computação I 2o Semestre / 2006

Emissora de TV (Ex: www.globo.com.br) Livraria (Ex: www.livrariasaraiva.com.br)

O que é e-mail?

E-mail ou correio eletrônico é provavelmente a ferramenta mais utilizada da internet. Há hoje centenas de milhões de pessoas usando programas que permitem o envio e recebimento de "cartas eletrônicas" através de computadores conec-tados à internet. Diariamente são enviados cerca de um bilhão de e-mails em todo o mundo, e este número deve subir cada vez mais.

Exemplo: [email protected]

O que é download? DOWNLOAD = Descarregar, baixar um arquivo (textos, imagens, músicas, filmes). Fazer o download de algo

significa fazer uma cópia de um arquivo ou de um programa em seu próprio computador.

Como fazer o Download de um Arquivo (Textos, imagens, músicas, filmes) Clique sobre o arquivo que deseja carregar para o seu micro. O programa exibirá uma caixa de diálogo com a op-

ção de executar o arquivo, salvá-lo em disco ou cancelar a operação. Em seguida, clique na opção Salvar em Disco. O Windows exibirá uma tela e permitirá que você especifique uma

pasta onde o arquivo será gravado.

CCoommppuuttaaççããoo Desde o inicio da existência do homem ele tem procurado criar máquinas que o auxiliem em seus trabalhos, dimi-

nuindo esforços e economizando tempo. Dentre essas máquinas, o computador tem se mostrado uma das mais versáteis, rápidas e seguras.

O computador é capaz de auxiliar em qualquer coisa que lhe seja solicitada, é consciente, trabalhador e possui muita energia, mas não tem iniciativa, nenhuma independência, não é criativo e por isso precisa receber informações nos mínimos detalhes.

A finalidade de um computador é receber, manipular e armazenar dados. Se visto somente como um gabinete composto por circuitos eletrônicos, cabos e fontes de alimentação, certamente ele não tem utilidade alguma. O computa-dor só consegue armazenar dados em discos, imprimir relatórios, gerar gráficos, realizar cálculos, entre outras funções, por meio de programas. Portanto sua tarefa principal é realizar a tarefa de processamento de dados, isto é, receber dados por um dispositivo de entrada (por exemplo: teclado, mouse, scanner, entre outros), realizar operações com estes dados e gerar uma resposta que será expressa em um dispositivo de saída (por exemplo: monitor de vídeo, impressora, etc.).

AAllggoorriittmmooss A palavra algoritmo, à primeira vista, parece-nos estranha. Embora possua designação desconhecida, fazemos uso

constantemente de algoritmos em nosso cotidiano: a maneira como uma pessoa toma banho é um algoritmo. Outros algo-ritmos freqüentemente encontrados são:

• Instruções para se utilizar um aparelho eletrodoméstico; • Uma receita para preparo de algum prato; • Guia de preenchimento para declaração do imposto de renda; • A maneira como as contas de água, luz e telefone são calculadas mensalmente; etc.

São vários os conceitos para algoritmo. Escolhemos alguns para serem apresentados aqui: “Um conjunto finito de regras que provê uma seqüência de operações para resolver um tipo de problema específico”

[KNUTH] “Seqüência ordenada, e não ambígua, de passos que levam à solução de um dado problema”

[TREMBLAY] “Processo de cálculo, ou de resolução de um grupo de problemas semelhantes, em que se estipulam, com generalidade e

sem restrições, as regras formais para a obtenção do resultado ou da solução do problema” [AURÉLIO]

Por que precisamos de Algoritmos?

Vejamos o que algumas pessoas importantes, para a Ciência da Computação, disseram a respeito de algoritmo: “A noção de algoritmo é básica para toda a programação de computadores”. [KNUTH - Professor da Universidade de Stanford, autor da coleção “The art of computer programming”]

Page 10: Unileste - Apostila Fundamentos Da Computação I

8

Fundamentos da Computação I 2o Semestre / 2006

“O conceito central da programação e da ciência da computação é o conceito de algoritmo”. [WIRTH - Professor da Universidade de Zurique, autor de diversos livros na área e responsável pela

criação de linguagens de programação como ALGOL, PASCAL e MODULA-2]

A importância do algoritmo está no fato de termos que especificar uma seqüência de passos lógicos para que o computador possa executar uma tarefa qualquer, pois o mesmo por si só não tem vontade própria, faz apenas o que man-damos. Com uma ferramenta algorítmica, podemos conceber uma solução para um dado problema, independendo de uma linguagem específica e até mesmo do próprio computador.

Características

Todo algoritmo deve apresentar algumas características básicas: • Ter fim; • Não dar margem à dupla interpretação (não ambíguo); • Capacidade de receber dado(s) de entrada do mundo exterior; • Poder gerar informações de saída para o mundo externo ao do ambiente do algoritmo; • Ser efetivo (todas as etapas especificadas no algoritmo devem ser alcançáveis em um tempo finito). A palavra Algoritmo quer dizer operação ou processo de cálculo. Um processo para resolver um dado problema.

Por exemplo: um algoritmo para calcular a soma de dois números informados (digitados) pelo usuário ou algoritmo para a área de uma esfera em função do seu raio.

Um algoritmo é uma seqüência ordenada e finita de operações bem definidas e eficazes que, quando executadas por um computador, operando sobre dados caracterizando o estado atual do contexto e o estado desejado, sempre termina num determinado período de tempo, produzindo uma solução ou indicando que a solução não pode ser obtida.

Algoritmo não é a solução de um problema, pois, se assim fosse, cada problema teria um único algoritmo. Algo-ritmo é um caminho para a solução de um problema, e em geral, os caminhos que levam a uma solução são muitos.O a-prendizado de algoritmos não se consegue a não ser através de muitos exercícios.

Algoritmo não se aprende: - Copiando Algoritmos - Estudando Algoritmos

Algoritmos só se aprendem: - Construindo Algoritmos - Testando Algoritmos

Etapas para solução de um problema – Elaboração de Algoritmos

1. Entender o problema; 2. Uma solução ou mais para o problema; 3. Um algoritmo que dê a solução projetada no item 2; 4. Escrever um programa; 5. Codificar o programa em alguma linguagem implementada; 6. Testar o programa codificado no item 5: massa de testes e rastreio ou chinezinho.

Construindo um algoritmo em alto nível

Problema: • Dados três valores positivos, a, b e c, determine a sua média aritmética • Quais as tarefas a serem executadas para a solução deste problema?

Page 11: Unileste - Apostila Fundamentos Da Computação I

9

Fundamentos da Computação I 2o Semestre / 2006

Solução em alto nível: 1. Obter os valores para a, b e c.

2. Calcular a média aritmética. 3

cbama ++=

3. Comunicar os resultados. 4. Terminar.

Estrutura do Algoritmo

algoritmo {nome do algoritmo} definição das variáveis atribuição de valores às variáveis entrada de dados LÓGICA Saída de dados fim-algoritmo.

Classificação dos Dados: Constantes X Variáveis

Constantes

Uma informação é dita constante quando não sofre nenhuma alteração de seu valor no decorrer do tempo. Para di-ferenciar informações constantes de outros tipos de informação, iremos delimitá-la por um par de aspas (‘ ‘).

Por exemplo: ‘5’, ‘Não corra’ , ‘Masculino’, ‘2527’.

Variáveis

Uma informação é classificada como variável quando tem a possibilidade de ser alterado o seu valor em algum instante do tempo. Por exemplo. A quantidade de funcionários de uma empresa.

O peso e idade de um funcionário. O computador possui uma área de armazenamento conhecida como memória. Todas as informações existentes no

computador estão ou na memória primária (memória RAM), ou na memória secundária (discos, fitas, CD-ROM etc). Nós iremos trabalhar, neste ano, somente com a memória primária, especificamente com as informações armazenadas na RAM (memória de acesso aleatório).

A memória do computador pode ser entendida como uma seqüência finita de caixas, que num dado momento, guardam algum tipo de informação, como número, uma letra, uma palavra, uma frase etc., não importa, basta saber que lá sempre existe alguma informação.

O computador, para poder trabalhar como alguma destas informações, precisa saber onde, na memória, o dado es-tá localizado. Fisicamente, cada caixa, ou cada posição de memória, possui um endereço, ou seja, um número, que indica onde cada informação está localizada. Este número é representado através da notação hexadecimal, tendo o tamanho de quatro, ou mais bytes. Abaixo segue alguns exemplos:

Endereço Físico Informação 3000: B712 ‘João’ 2000: 12EC 12345 3000: 0004 ‘H’

Como pode ser observado, o endereçamento das posições de memória através de números hexadecimais é perfei-tamente compreendido pela máquina, mas para nós humanos torna-se uma tarefa complicada. Pensando nisto, as lingua-gens de computador facilitaram o manuseio, por parte dos usuários, das posições de memória da máquina, permitindo que, ao invés de trabalhar diretamente com os números hexadecimais, fosse possível dar nomes diferentes a cada posição de memória. Tais nomes seriam de livre escolha do usuário. Com este recurso, os usuários ficaram livres dos endereços físicos (números hexadecimais) e passaram a trabalhar com endereços lógicos (nomes dados pelos próprios usuários). Desta forma, o Exemplo acima, poderia ser alterado para ter o seguinte aspecto:

Page 12: Unileste - Apostila Fundamentos Da Computação I

10

Fundamentos da Computação I 2o Semestre / 2006

Endereço Lógico Informação Nome ‘João’

Número 12345 Letra ‘H’

Como tínhamos falado, os endereços lógicos são como caixas, que num dado instante guardam algum tipo de in-formação. Mas é importante saber que o conteúdo desta caixa não é algo fixo, permanente, na verdade, uma caixa pode conter diversas informações, ou seja, como no Exemplo acima, a caixa (Endereço Lógico) rotulada de “Nome” num dado momento contém a informação “João”, mas em um outro momento, poderá conter uma outra informação, por Exemplo “Pedro”. Com isto queremos dizer que o conteúdo de uma destas caixas (endereço lógico) podem variar, isto é podem sofrer alterações em seu conteúdo. Tendo este conceito em mente, a partir de agora iremos chamar de forma genérica, as caixas ou endereços lógicos, de variáveis.

Desta forma podemos dizer que uma variável é uma posição de memória, representada por um Nome simbólico (atribuído pelo usuário), a qual contém, num dado instante, uma informação.

Tipos Primitivos de Dados

A informação é a matéria-prima que faz com que seja necessária a existência do computador, pois eles são capa-zes de manipular e armazenar um grande volume de dados com alta performance. Os tipos primitivos de dados são:

Inteiro

Toda e qualquer informação numérica que pertença ao conjunto dos números inteiros (negativa, nula ou positiva). Não possuem parte decimal. A faixa de valores inteiros possíveis é –32767 a 32768.

Por exemplo: Hoje é dia 15 de fevereiro. O aluno está cursando a 3 série. O professor selecionará 2 alunos para monitoria.

Real

Toda e qualquer informação numérica que pertença ao conjunto dos números reais (negativo, nula ou positiva). Por exemplo: O funcionário receberá R$ 250,30 por mês. A temperatura está próxima do 37,5 graus.

Caracter

Toda e qualquer informação composta por um conjunto de caracteres alfanuméricos (0..9, a .. z, A..Z) e/ou especiais (por exemplo: *, $, %, &, #, ?, >,<, !, @). Os números não podem ser utilizados para cálculo.

Por exemplo: O nome do funcionário é Mauro Morais. A mensagem de retorno é “Cuidado, o micro está doido”. A placa do carro é GXW 0345

Lógico

Toda e qualquer informação que pode apenas assumir duas situações possíveis (biestável). Verdadeiro ou Falso. Por exemplo: O funcionário possui dependente. A lâmpada pode estar acessa ou apagada.

Formação de Identificadores - Nome de variável

Identificador é o nome dado as informações de caracter variável. O identificador segue determinadas regras: Devem começar por um caracter alfabético; Podem ser seguidos por mais caracteres alfabéticos e/ou numéricos, ou pelo caracter sublinhado “_” Não é permitido o uso de caracteres especiais;

Exemplos: IDENTIFICADORE VÁLIDOS: Alpha, Media, X2345, Nome_Aluno, A_10, Curso, Salario,. IDENTIFICADORES NÃO VÁLIDOS: X-Y, Nota/2, PLRTX**, Nome Aluno, A*B, Salário, @luno.

Page 13: Unileste - Apostila Fundamentos Da Computação I

11

Fundamentos da Computação I 2o Semestre / 2006

Declaração de Variáveis

Para armazenar corretamente os dados na memória é necessário a sua correta declaração: tipo primitivo do dado e o seu nome. Devemos obedecer a seguinte sintaxe: VAR lista de variáveis : tipo; Exemplo: VAR X, Y, IDADE, QTFUNCIONARIOS : inteiro;

NOME, ENDERECO, DATA : caracter; SALARIO, PESO, DOLAR, VALORVENDA : real;

TEMDEPENDENTE, MORAIPATINGA : lógico;

Comando de Atribuição

Um comando de atribuição permite-nos fornecer um valor a uma certa variável (guardar um objeto numa certa gaveta), onde o tipo dessa informação deve ser compatível com o tipo da variável, isto é, somente podemos atribuir um valor lógico a uma variável capaz de comportá-lo, ou seja, uma variável declarada do tipo lógico. O comando de atribui-ção possui a seguinte sintaxe: Identificador := expressão;

Exemplo: VAR A, B : lógico; X : Inteiro;

A := verdadeiro; X := 8 + 13 div 5;

B := 5 = 3;

Comando de Entrada

O comando de entrada de dados possui a seguinte sintaxe: leia (< variável>); Exemplo: leia (x); leia (A, IDADE, NOTA);

Comando de Saída

O comando de saída de dados obedece a seguinte sintaxe: escreva (<variável>) ; escreva (<constante>) ; escreva (<expressão>) ; Exemplo: escreva (Y) ; escreva (B, IDADE, MEDIA) ; escreva (“Bom Dia“) ; escreva (“Você pesa “ , X * 2, “ quilos“) ;

Expressões Aritméticas

Denominamos expressão aritmética aquela cujos operadores são aritméticos e cujos operandos são constantes e/ou variáveis do tipo numérico (inteiro e /ou real). Os operadores aritméticos são:

+ adição; - subtração; * multiplicação; / divisão; SQR (quadrado) potenciação ( SQR(5) é igual a 52= 25) EXP potenciação geral ( EXP(2,3) é igual a 23 = 8) SQRT (raiz quadrada) radiciação (SQRT(9) é igual a 3; MOD (resto da divisão inteira) Exemplo: 9 mod 4 1 DIV (quociente da divisão inteira) Exemplo: 27 div 5 5

Devemos obedecer à prioridade entre as operações, conforme a seguir : 1º potenciação, radiciação. 2º multiplicação, divisão. 3º adição, subtração.

Exemplo. Qual é o resultado da expressão abaixo: 10 + 3 * 30 / 9 + SQRT(9) - SQR(2)+2

10 + 90/9 + 3 - 4 + 2 23 – 6 17

Page 14: Unileste - Apostila Fundamentos Da Computação I

12

Fundamentos da Computação I 2o Semestre / 2006

Exercícios – Variáveis e Tipos de Variáveis – Comandos Básicos

1) Dar o tipo de cada um dos valores abaixo: a) 613 b) 613,0 c) -613 d) ‘613’

e) -3,012 * 1015 f) 17*1012 g) -28,3 * 10 -23 h) ‘Fim de Questão’

2) Faça um algoritmo para atribuir os seguintes valores às variáveis: a) 12345 b) 123456 c) -1122

d) 10 e) ‘João Maria da Silva’

3) No seguinte algoritmo existe algum erro? Onde? ALGORITMO Teste; var idade : INTEIRO; letra : CARACTER; Inicio idade := 23; idade := 678; idade := letra; letra := ABC; letra := ‘A’; letra := 2; FIMALGORITMO.

4) Qual a diferença existente nas seguintes atribuições? a) Letra ← ‘A’ Nome ← ‘João’

b) Letra ← A Nome ← João

5) Indique qual o resultado será obtido das seguintes expressões: a) 1 / 2 + 1 MOD 2 b) (200 / 10 ) MOD 4 c) SQR(5) + 3 * 6 +(19 – 23) / 2

d) 3 * 5 +1 +0,25 * 2 e) 28 / 7 + 4 - 3 / 6 - 7

O uso do operador de adição em variáveis do tipo caracter

O operador “+” caso seja usado entre variáveis do tipo CHAR ou STRING, causará uma ação conhecida por con-catenação, ou seja, juntar os caracteres ou STRING’s usados na operação em uma só STRING.

Exemplo: ALGORITMO Concatena; Var Letra1, Letra2 : CARACTER; Nome1, Nome2, Nome : CADEIA; Inicio Letra1 := ‘D’; Letra2 := ‘a’; Nome1 := ‘João’; Nome2 := ‘Silva’; Nome := Nome1 + Letra1 + Letra2 + Nome2; FIMALGORITMO.

As instruções acima resultarão no armazenamento do Nome “João Da Silva” na variável rotulada de “Nome”.

Page 15: Unileste - Apostila Fundamentos Da Computação I

13

Fundamentos da Computação I 2o Semestre / 2006

EESSTTRRUUTTUURRAASS DDEE CCOONNTTRROOLLEE –– EEssttrruuttuurraa SSeeqqüüeenncciiaall Algoritmos seqüenciais são algoritmos cuja seqüência lógica é realizada passo a passo, sem restrições (ou laços).

Este tipo de algoritmo resolve uma classe de problemas simples: 1º. Ler valores; 2º. Calcular valores; 3º. Escrever resultados; 4º. Parar.

Os algoritmos são iniciados com a palavra algoritmo e terminados com a palavra fim-algoritno. Após a declaração das variáveis estão os comando que são executados numa seqüência linear, seguindo-se o texto em que estão escritos de cima para baixo.

algoritmo nome do algoritmo definição das variáveis atribuição de valores às variáveis entrada de dados LÓGICA Saída de dados fim-algoritmo.

Algoritmo Var A, B : inteiro; Nome: caracter; Media : real; Inicio escreva(‘Digite o nome do aluno’); leia(Nome); escreva(‘Digite a primeira nota’); leia (A);

escreva(‘Digite a segunda nota’); leia (B); Media := (A+B)/2; Escreva(Media); fim-algoritmo.

Exemplos – Estrutura Seqüencial

1) Elabore um algoritmo que leia dois números inteiros quaisquer, informados pelo usuário via teclado, e que calcule e escreva a soma e o produto dos mesmos.

Algoritmo Exerc01; Var N1, N2, SOMA : inteiro;

PROD : real; Inicio

Escreva (‘Digite o primeiro número: ’); Leia (N1);

Escreva (‘Digite o segundo número: ’); Leia (N2); SOMA := N1 + N2; PROD := N1 * N2; Escreva (‘ A soma dos números é: ’, SOMA); Escreva (‘ O produto dos números é: ’, PROD); fim-algoritmo.

2) Elabore um Algoritmo que leia as medidas dos lados A e B de um retângulo qualquer e que calcule e escreva a sua área..

Algoritmo Exerc02;

Page 16: Unileste - Apostila Fundamentos Da Computação I

14

Fundamentos da Computação I 2o Semestre / 2006

Var LA, LB, AREA : real; Inicio escreva ( ‘ Digite o valor da altura do retângulo: ’ ); leia ( LA ); escreva ( ‘ Digite o valor da sua base: ’ ); leia ( LB ); AREA := LA * LB; escreva ( ‘ O valor da área de um retângulo é: ’ , AREA ); fim-algoritmo.

3) Elabore um Algoritmo que leia as medidas dos lados A e B de um retângulo qualquer e que calcule a sua diagonal. DIAG2 = A2 + B2 DIAG DIAG= SQRT(A2 + B2)

Algoritmo Exerc03; Var LA , LB, DIAG : real; Inicio escreva ( ‘ Digite o valor do lado “A” do retângulo: ’ ); leia ( LA ); escreva ( ‘ Digite o valor do seu lado “B” : ’ ); leia ( LB ); DIAG := SQRT(SQR( LA) + SQR( LB )); escreva ( ‘ O valor da diagonal do retângulo é: ’ , DIAG ); fim-algoritmo.

4) Elabore um Algoritmo que calcule e escreva o volume de uma esfera de raio R que será informado lado pelo usuário. Algoritmo Exerc04; Var R , V : real; Inicio escreva (‘Digite o valor do raio: ’); leia (R); V := ( 4 / 3 ) * 3.1415 * (SQR(R) * R ) ; escreva (‘ O valor do volume é : ’ , V ); fim-algoritmo.

Exercícios – Estrutura de Seqüencial

1) Faça um algoritmo para ler a base e a altura de um triângulo e em seguida, calcule e escreva a área do mesmo. Obs.: Área = ( Base * Altura ) / 2

2) Calcular o perímetro e a área de um quadrado cujo lado é informado pelo usuário. Observação: PERIMETRO é a soma dos lados de um quadrado, com o mesmo tem os quatro lados iguais temos = 4 * L (onde L é um dos lados) e AREA = L2.

3) Solicitar ao usuário as 4 notas de um aluno. Calcular e escrever a média das notas. 4) Solicitar ao usuário o primeiro valor de uma progressão aritmética de razão 3. Progressão aritmética são somas suces-

sivas. Escrever os 5 primeiros números da seqüência. 5) Solicitar ao usuário o valor inicial de uma progressão geométrica de razão 9. Progressão geométrica são multiplica-

ções sucessivas. Calcular e escrever os 3 primeiros números da seqüência. 6) Construa um algoritmo que leia a idade de uma pessoa. Calcule e escreva quantos dias ela viveu. Calcule e escreva

quantas horas ela viveu. Lembre-se que um ano tem 365 dias e um dia tem 24 horas. 7) Uma empresa possui, para um determinado funcionário, uma ficha contendo: o nome, número de horas trabalhadas e

o nº de dependentes de um funcionário. Considerando que: a) A empresa paga 12 reais por hora e 40 reais por dependentes.

b) Sobre o salário são feito descontos de 8,5% para o INSS e 5% para IR. Faça um algoritmo para ler o Nome, número de horas trabalhadas e número de dependentes de um funcionário. Após a leitura e os devidos cálculos escreva qual o Nome, salário bruto, os valores descontados para cada tipo de imposto e finalmente qual o salário líquido do funcionário.

Page 17: Unileste - Apostila Fundamentos Da Computação I

15

Fundamentos da Computação I 2o Semestre / 2006

8) O preço de um automóvel é calculado pela soma do preço de fábrica com o preço dos impostos (45% do

preço de fábrica) e a percentagem do revendedor (28% do preço de fábrica). Faça um algoritmo que leia a marca do automóvel e o preço de fábrica e calcule e escreva seu preço final.

9) Sabendo-se que uma pessoa recebe um salário fixo por mês e que ele tem uma dívida a pagar. Construa um algoritmo que leia o salário que a pessoa recebe por mês e leia também a dívida que ela possui. Por fim calcule e escreva quanto vai sobrar do salário dela depois de pagar a dívida.

10) Sabendo que uma turma de amigos deseja assistir a um filme e que o ingresso custa R$ 4,00, construa um algoritmo que leia o nome do filme que eles irão assistir e o número de pessoas da turma. Com base nestes dados o seu algorit-mo deve calcular quanto a turma gastará para ir ao cinema. Por fim escreva o nome do filme e o total gasto pela turma com os ingressos.

11) Sabe-se que o preço do passe escolar é 0,85 centavos. Um motorista de um ônibus deseja adquirir um programa que leia a quantidade de passageiros que entram no ônibus e que depois calcule e escreva quanto de dinheiro ele terá arre-cadado. Construa um algoritmo que resolva o problema do motorista, ou seja, leia quantas pessoas entraram no ônibus e depois calcule e escreva quanto foi arrecadado.

12) Sabendo-se que uma pessoa recebe um salário fixo por mês e que além do salário fixo recebeu uma gratificação por tempo de serviço. Construa um algoritmo que leia o salário que a pessoa recebe por mês e leia também a gratificação que ela ganhou. Por fim calcule e escreva quanto ele receberá no total.

13) Construa um algoritmo que leia os dois lados, ou seja, a base e a altura de um retângulo. Utilizando o valor desses dois lados calcule e escreva:

a. O perímetro desse retângulo; b. A área desse retângulo. (lembre-se a área é dada pela multiplicação da base pela altura); c. Valor da diagonal deste retângulo (lembre-se diagonal = SQRT (SQR(base) + SQR(altura));

14) Após a realização de um senso demográfico em uma dada região, descobriu-se que o número de habitante cresceu em 25 %. Construa um algoritmo que leia o número de habitantes que havia na região antes do senso. Calcule qual é a nova população, conforme aumento citado, e escreva o resultado obtido.

15) Deseja-se cobrir o chão de uma cozinha com pisos de cerâmica. Sabe-se que o formato do chão é de um quadrado, cuja área é dada por L * L (L é o lado), e sabe-se também que 1 piso cobre 0,3 metros quadrados. Com base nesses dados calcule e escreva: ♦ A área do chão a ser coberto pelo piso; ♦ O número de pisos gastos para realizar o serviço desejado.

Exercícios Revisionais – Variáveis – Comandos Básicos – Estrutura Seqüencial

1. Assinalar os identificadores inválidos, justificando.

a) A1BC b) ‘XA1D’ c) XA,1d d) 198aberto e) TO.inicio f) inicio fim g) n h) X_1 i) A-6 j) #casa

2. Determine os valores finais de A, B e C após a execução do trecho do algoritmo abaixo:

A := 0; A B C B := 1; C := A + B; A := A + 1; B := A + B * C; C := A – B +4/2 + C*3;

3. Escreva o tipo de dado ideal para se representar as seguintes informações: a) A identificação da conta bancária (sem dígito) b) A altura de uma pessoa em metros c) A placa de um veículo

d) Se uma pessoa é casada ou não e) A cor de um objeto f) O estado civil de uma pessoa

4. A ordem das atribuições é importante? A := B e C := A tem o mesmo efeito de C := A e A := B?

Page 18: Unileste - Apostila Fundamentos Da Computação I

16

Fundamentos da Computação I 2o Semestre / 2006

5. Em quais dos seguintes pares é importante a ordem dos comandos?

a) X := Y b) X := Y c) X := Z d) Z := Y Y := X Z := X X := Y X := Y

6. Sendo as seguintes variáveis: MULT, N, X, tipo real; NOME, COR, DIA, tipo caracter e TESTE, tipo lógico; assina-le os comandos inválidos e escreva a frente por que o comando é inválido: a) Leia(‘NOME’); b) MULT := N + 2 * DIA; c) COR := ‘AZUL’;

d) MULT * 2 := X – N; e) Escreva(‘NOME’); f) TESTE := X + N;

7. Sendo A = 12; B = 5,5; C=2,2 e D=5; observe as expressões e assinale o tipo de cada uma: I – Inteiro ( ) A ( ) ’23 +A ’ R – Real ( ) A + B ( ) 23 + A C – Caracter ( ) ‘C – D’ ( ) (A – B) + C

( ) ‘A’ ( ) ‘A – B’ + ‘C’ 8. Elabore um algoritmo que leia a altura de três pessoas e que calcule e escreva a média da altura das pessoas. 9. Para fabricar uma lixeira são necessários 1,35 m de aço inox e 10 rebites. Elabore um algoritmo que leia a quantidade

total de lixeiras que devem ser fabricadas e que informe o total de aço inox e de rebites que serão gastos. 10. Elabore um algoritmo que calcule e escreva o volume de uma lata, sabe-se que: V = 3,1415 * R2 * Altura. 11. Escreva um algoritmo para calcular e exibir a média ponderada de 2 notas. (nota1= peso 6 e nota2= peso 4) 12. Sabe-se que o preço da passagem de ônibus municipal é R$ 1,20 e que todos os estudantes têm um desconto de 25%.

A empresa de ônibus necessita saber ao final de cada trajeto quanto foi arrecadado. Elabore um algoritmo que calcule e informe o quanto foi arrecadado ao final de cada trajeto.

13. Sabe-se que são necessários 0,2L de tinta para pintar 1m2 de parede. Construa um algoritmo que, com base nas medi-das de uma parede retangular, escreva a área a ser pintada e a quantidade de tinta necessária para pintar esta parede.

14. Elabore um algoritmo que leia a temperatura em graus Celsius (C) e que calcule-a e escreva-a convertida em graus Fahrenheit (F). A fórmula de conversão é: F ← (9 * C + 160) / 5.

Page 19: Unileste - Apostila Fundamentos Da Computação I

17

Fundamentos da Computação I 2o Semestre / 2006

EESSTTRRUUTTUURRAASS DDEE CCOONNTTRROOLLEE –– EEssttrruuttuurraa CCoonnddiicciioonnaall Uma estrutura de controle condicional permite a escolha de um grupo de ações e estruturas a ser executado quan-

do determinadas condições, representadas por expressões lógicas, são ou não satisfeitas.

Expressões Lógicas

Usamos os operadores relacionais para realizar comparações entre dois valores de mesmo tipo primitivo. Tais va-lores são representados por constantes, variáveis ou expressões aritméticas.

Os operadores relacionais são: = igual > maior

< menor >= maior ou igual <= menor ou igual < > diferente

O resultado obtido por uma relação é sempre um valor lógico (V ou F). Exemplos: a) 2 * 4 = 24/3 V (Verdadeiro)

b) SQRT(64) = SQR(2) * 2 F (Falso)

Operadores Lógicos

Utilizaremos três conectivos básicos para a formação de novas proposições a partir de outras já conhecidas. Os operadores lógicos são:

E - Conjunção Ou - Disjunção não - Negação

Prioridades

Entre operadores lógicos ---------------------------- | não | e ou ↓ Entre todos os operadores | parênteses mais internos | funções matemáticas | operadores aritméticos | operadores relacionais | operadores lógicos ↓

A e B

A ou B

Page 20: Unileste - Apostila Fundamentos Da Computação I

18

Fundamentos da Computação I 2o Semestre / 2006

Exercícios de Operadores lógicos e relacionais

1. Indique o resultado lógico das seguintes expressões: a) (6 < 8) OU (3 > 7) b) NÃO ( 2 < 3 ) c) SQR(4) – SQRT(9) – 1,5 d) ((10 / 2) MOD 6) > 5 + 1 / 2 + 1 MOD 2 e) (((10 / 2 ) MOD 6 ) > 5 ) OU NÃO( 3 < ( 2 MOD 2 ) ) f) (200 / 10) MOD 4 = 200 / (10 MOD 4)

2. Escreva o resultado das seguintes comparações:

a) 3 = 3.0 b) ' ' = ' ' c) 'CASA' <> 'casa'

d) FALSE = FALSE e) 'JOAQUIM' < 'JOSE' f) '22' > '200'

Estrutura Condicional Simples Permite a escolha de um comando a ser executado:

se (condição) então inicio

comando1; fim;

Ou permite a escolha de um grupo de comandos a serem executados: se (condição) então inicio

comando 1; comando 2; . comando n; fim;

Veja o exemplo: Obter dois números e calcular a divisão do 1° pelo 2°. Não permitir divisão por zero. Algoritmo Exemplo1; Var A, B, Resp: real; inicio escreva(‘ ESTE PROGRAMA DIVIDE DOIS NUMEROS E NÃO ACEITA DIVISÃO POR ZERO’); escreva(‘Informe o número correspondente ao divisor da operação’); leia(A); escreva(‘Informe o número correspondente ao dividendo da operação’); leia(B);

se ( B<>0 ) então inicio

Resp := A/B; escreva(A, ‘divido por ‘, B. ‘é igual a:’, Resp);

fim; fim-algoritmo.

Estrutura Condicional Composta Permite a escolha entre dois grupos de comandos a serem executados. No primeiro caso somente o comando1 ou somente o comando2 será executado.

Se (condição) então inicio

comando1; fim

Page 21: Unileste - Apostila Fundamentos Da Computação I

19

Fundamentos da Computação I 2o Semestre / 2006

Senão

inicio comando2;

fim;

ou caso de um grupo de comandos se (condição) então inicio

comando 1; ... comando n; fim senão inicio comando A; comando B; fim;

Exemplos – Estrutura Condicional Simples e Composta

1) Obter dois números inteiros e calcular a divisão do primeiro pelo segundo. Não permitir divisão por zero. Avisar quando não for possível realizar a divisão.

Algoritmo Exerc1; Var A, B, Resp: inteiro; inicio escreva(‘ ESTE PROGRAMA DIVIDE DOIS NUMEROS E NÃO ACEITA DIVISÃO POR ZERO’); escreva(‘Informe o número correspondente ao divisor da operação’); leia(A); escreva(‘Informe o número correspondente ao dividendo da operação’); leia(B);

se (B<>0) então inicio

Resp:= A/B; escreva(A, ‘divido por ‘, B. ‘é igual a:’, Resp);

fim senão inicio escreva(‘Não é possível realizar a operação’); fim; fim-algoritmo.

2) Elabore um Algoritmo que leia o sexo e a altura de uma pessoa e que calcule o seu peso ideal conforme a fórmula abaixo: Homens: Peso Ideal => (72,7 * Altura) - 58

Mulheres: Peso Ideal => (62,1 * Altura) - 44,7 Algoritmo PesoIdeal; Var H , PI : real;

SEXO: caracter; inicio escreva ( ‘ Digite a sua altura : ’ ); leia ( H ); escreva ( ‘ Digite o seu sexo (M / F): ’ ); leia ( SEXO ); se ( SEXO = ‘ m’ ) ou ( SEXO = ‘ M ’ ) então inicio PI := ( 72.7 * H ) - 58 ; fim; senão inicio

Page 22: Unileste - Apostila Fundamentos Da Computação I

20

Fundamentos da Computação I 2o Semestre / 2006

PI := ( 62.1 * H ) - 44.7;

fim; escreva ( ‘ O seu peso ideal é : ’ , PI , ‘ Kg .’ ); fim-algoritmo.

E se a pessoa digitar para o sexo valor diferente de M/m ou F/f? 3) Elabore um Algoritmo que leia o sexo e a altura de uma pessoa e que calcule o seu peso ideal conforme a fórmula

abaixo: Homens: Peso Ideal => (72,7 * Altura) - 58 Mulheres: Peso Ideal => (62,1 * Altura) - 44,7

Algoritmo PesoIdeal2; Var H , PI : real;

SEXO: caracter; inicio escreva ( ‘Digite a sua altura : ’ ); leia ( H ); escreva ( ‘Digite o seu sexo (M / F): ’ ); leia ( SEXO ); se ( SEXO = ‘m’ ) ou ( SEXO = ‘M’ ) então inicio PI := ( 72.7 * H ) - 58 ; escreva ( ‘ O seu peso ideal é : ’ , PI , ‘ Kg .’ ); fim; senão inicio

se ( SEXO = ‘f’ ) ou ( SEXO = ‘F’ ) então inicio

PI := ( 62.1 * H ) - 44.7; escreva ( ‘ O seu peso ideal é : ’ , PI , ‘ Kg .’ ); fim; senão inicio escreva ( ‘ Sexo Inválido!’ ); fim;

fim; fim-algoritmo.

4) Elabore um algoritmo que leia quatro notas: N1, N2, N3 e N4 de um aluno e que calcule e escreva a mensagem “APROVADO” para quem obteve a média maior ou igual a 60, caso contrário, a mensagem deve ser “REPROVADO”.

Algoritmo Notas; Var N1 , N2, N3 , N4 ,MEDIA : real; NOME : caracter; inicio escreva ( ‘ Digite a primeira nota do aluno: ’ ); leia ( N1 ); escreva ( ‘ Digite a segunda nota : ’ ); leia ( N2 ); escreva ( ‘ Digite a terceira nota : ’ ); leia ( N3 ); escreva ( ‘ Digite a quarta nota : ’ ); leia ( N4 ); escreva ( ‘ Digite o nome do aluno : ’ ); leia ( NOME ); MEDIA := ( N1+N2+N3+N4 ) / 4 ; se (MEDIA >= 60) então inicio

Page 23: Unileste - Apostila Fundamentos Da Computação I

21

Fundamentos da Computação I 2o Semestre / 2006

escreva ( NOME., ‘ Aprovado !!!’ );

fim; senão inicio

escreva ( NOME., ‘ Reprovado !!!’ ); fim; fim-algoritmo.

5) Elabore um algoritmo que leia três números quaisquer NA, NB e NC, e que determine qual dos três é o maior. Algoritmo Numeros; var NA , NB , NC: real; inicio escreva ( ‘ Digite o primeiro número : ’ ); leia ( NA ); escreva ( ‘ Digite o segundo número: ’ ); leia ( NB ); escreva ( ‘ Digite o terceiro número : ’ ); leia ( NC ); se ( NA > NB ) e ( NA > NC ) então inicio escreva (‘ O maior número é: ’ , NA ); fim senão inicio

se ( NB > NA ) e ( NB > NC ) então inicio escreva ( ‘ O maior número é: ’ , NB );

fim senão inicio

escreva ( ‘ O maior número é: ’ , NC ); fim; fim;

fim-algoritmo.

6) Elabore um Algoritmo que leia os coeficientes A, B e C de uma equação do 2º grau e que calcule e escreva as suas raízes reais.

var A , B , C ,DELTA ,R1 , R2: real ; inicio escreva (‘Digite o número “A”: ’); leia (A): escreva (‘Digite o número “B”: ’); leia (B); escreva (‘ Digite o número “C”: ’); leia (C); DELTA := SQR(B) - 4 *A* C ; se ( DELTA < 0 ) então inicio escreva ( ‘ Não existem raízes reais ’ ); fim;

senão inicio

se ( DELTA = 0 ) então início R1 := - B / ( 2 * A );

Page 24: Unileste - Apostila Fundamentos Da Computação I

22

Fundamentos da Computação I 2o Semestre / 2006

R2 := R1 ; escreva ( ‘ As raízes iguais e valem : ’ , R1 ,’ e ’, R2 );

fim senão início

R1 := ( -B + sqrt( DELTA )) / ( 2 * A ); R2 := ( -B – sqrt( DELTA )) / ( 2 * A );

escreva ( ‘ As raízes são : ’ , R1 ,’ e ’, R2 ); fim ; fim;

fim-algoritmo.

7) Elabore um Algoritmo que leia dois números quaisquer N1 e N2 e o sinal da operação a ser realizada entre eles e que calcule e escreva o resultado desta operação.

Algoritmo Operacao; Var N1 , N2 , R : real; SINAL : caracter; inicio escreva ( ‘ Digite o número 1: ’ ); leia ( N1 ); escreva ( ‘ Digite o número 2: ’ ); leia ( N2 ); escreva ( ‘ Digite o sinal da operação: ’ ); leia ( SINAL ); se ( SINAL = ‘ + ’ ) então inicio R := N1+N2 ; escreva ( ‘ A soma é : ’ , R ); fim senão inicio se ( SINAL = ‘-’ ) então início R := N1 - N2 ; escreva ( ‘ A subtração é : ’ , R ); fim senão inicio se ( SINAL = ‘ * ’ ) então início R :=N1 * N2 ; escreva ( ‘ O produto é : ’ , R ); fim senão inicio se ( SINAL = ‘ / ’ ) então início R := N1 / N2 ; escreva ( ‘ A divisão é : ’ , R ); fim senão inicio

escreva ( ‘ Sinal Inválido ’ ); fim; fim; fim; fim;

Page 25: Unileste - Apostila Fundamentos Da Computação I

23

Fundamentos da Computação I 2o Semestre / 2006

fim-algoritmo.

Exercícios – Algoritmos com Estrutura de Decisão

1) Solicitar ao usuário 02 números. Informar o maior entre eles ou se são iguais. 2) Construa um algoritmo que leia três números e calcule e escreva qual deles é o maior e qual deles é o menor. 3) Uma pessoa deseja fazer um empréstimo no banco. Conforme norma do banco, só poderão fazer empréstimos as pes-

soas que tiverem renda superior a 500,00 reais e forem maiores de 21 anos. Construa um algoritmo que leia a renda e a idade de uma pessoa e informe (escreva) se esta pessoa poderá ou não fazer um empréstimo.

4) Sabe-se que os funcionários de uma empresa receberão uns dias de folga. Porém esta folga será dada em função do tempo de serviço. Para os funcionários que têm até 3 anos de casa, terá 5 dias de folga. Para funcionários com 4 a 8 anos de casa será dado uma folga de 10 dias. Para funcionários com tempo de casa a partir de 9 anos será dado uma folga de 15 dias. Construa um algoritmo que seja capaz de ler o tempo de serviço de cada funcionário. Com base nes-ta informação escreva quantos dias de folga ele tem direito.

5) Elabore um algoritmo que leia o nome e a idade de uma pessoa. O algoritmo deverá escrever o nome desta pessoa seguido de uma mensagem. Esta mensagem dependerá da idade da pessoa, veja a lista a seguir:

Idade Mensagem Menos de 10 anos (inclusive) Nome da pessoa “é uma criança” Mais de 10, porém menos de 18 (inclusive) Nome da pessoa “é um adolescente” Mais de 18, porém menos de 26 (inclusive) Nome da pessoa “é um jovem” Mais de 26, porém menos de 50 (inclusive) Nome da pessoa “é um adulto” Mais de 50 anos Nome da pessoa “é um idoso”

6) Construa um algoritmo que leia dois números inteiros. Se esses dois números forem positivos, ou seja maior que zero, calcule e escreva a subtração e a divisão dos mesmos. Casos os dois números sejam negativos, calcule e escreva a multiplicação e a soma dos mesmos. Caso eles não se enquadrarem em nenhuma dessas situações, faça uma operação de potenciação do primeiro com o segundo.

7) Construa um algoritmo que leia o nome, o sexo e altura de duas pessoas. Quando a pessoa for do sexo feminino calcu-le e escreva o dobro da altura desta pessoa. Caso ela seja no sexo masculino calcule e escreva a metade da altura desta pessoa.

8) Construa um algoritmo que leia o preço de 3 produtos comprados, em seguida leia a forma de pagamento: à vista ou com um cheque para 30 dias. Peça ao usuário para digitar um (1) quando for comprar à vista e zero (0) quando for dar um cheque para 30 dias. Calcular e escrever o preço total da compra. Seu algoritmo deverá calcular e escrever tam-bém o preço final desta compra sabendo-se que para compras à vista tem-se um desconto de 10 % e para compras com 30 dias no cheque tem-se um aumento de 5%.

9) Construa um algoritmo que leia o nome, a idade, número de dependentes, o salário e o sexo de um funcionário de uma empresa. Analise cada questão abaixo. Seu algoritmo deverá dar uma solução a cada uma delas, calculando e es-crevendo o salário obtido:

• Quando o funcionário for homem e possuir número de dependentes acima de 7 seu salário deverá ter um au-mento de 25%;

• Quando o funcionário for um homem com idade superior a 55 anos seu salário receberá um aumento de 15%; • Quando o funcionário for uma mulher, com idade superior a 40 anos ou número de dependente acima de 5 de-

verá ter um aumento de 20%; • Os demais funcionários deverão ter um aumento de 5%; • Se o usuário informar um sexo inválido seu algoritmo deverá detectar e informar ao usuário

10) Construa um algoritmo que leia o salário e o tempo de serviço de uma pessoa. Quando esta pessoa tiver um salário menor que 150,00 e tempo de casa inferior a 2 anos lhe será dado 7 dias de folga e um aumento de 10%. Calcule e es-creva o novo salário e comunique (escreva) a quantidade de dias de folga que terá direito. Quando a pessoa ganhar mais ou igual a 150,00 e tiver tempo de casa superior a 3 anos lhe será dado 12 dias de folga e um aumento de 8%. Calcule e escreva o novo salário e comunique (escreva) a quantidade de dias de folga que terá direito. As demais pes-soas só terão direito a 15 dias de folga, sem qualquer aumento.

Exercícios Revisionais – Estrutura de Decisão

1) Solicitar ao usuário um ano e informar se é bissexto ou não.

Page 26: Unileste - Apostila Fundamentos Da Computação I

24

Fundamentos da Computação I 2o Semestre / 2006

2) Solicitar ao usuário notas de 4 etapas de um aluno. Escreva o total das notas e se o aluno está aprovado ou

não, sabendo que o mínimo para aprovação é 60. 3) Construa um programa que solicite ao usuário o mês em forma numérica (1 a 12) e escreva o número de dias que o

mês digitado tem. 4) Solicitar ao usuário o mês em forma numérica [1 a 12]. Escrever no vídeo o mês por extenso. 5) Solicitar ao usuário o consumo em KW. Calcular o valor a ser pago, sabendo que o valor por KW é R$ 0,10 para con-

sumo mensal abaixo de 80 KW e de R$ 0,07 para consumo mensal a partir de 80 KW. 6) Elabore um algoritmo que leia as 4 notas da disciplina de Fundamentos da computação I e que calcule e escreva a

nota final do aluno e se ele está: APROVADO (nota final >= 70), em PROVA FINAL (nota final entre 40 e 69), ou REPROVADO (nota final menor que 40).

7) Os alunos de uma escola receberão um desconto na mensalidade em função do número de irmãos que possuem de acordo com a tabela: Nenhum irmão Sem desconto De 1 a 2 irmãos 5% De 3 a 4 irmãos 10% Acima de 4 irmãos 15% Elabore um algoritmo que calcule e informe, a partir da solicitação do usuário do valor da mensalidade, o valor do desconto e o valor da mensalidade com o desconto.

8) Um clube recreativo decidiu conceder um aumento no valor da mensalidade para seus sócios, conforme a faixa etária do associado: De 0 a 12 anos 5% De 13 a 21 ano 8% Acima de 21 anos 10% Elabore um algoritmo, que a partir da solicitação da idade e do valor da mensalidade, calcule e escreva o valor do aumento e o novo valor da mensalidade a ser pago pelo associado.

9) Elabore um algoritmo que solicite ao usuário o preço unitário do in-gresso para um show e quantidade de ingressos. O algoritmo deverá calcular e escrever o valor total, o valor do desconto e o valor líquido conforme o quadro ao lado:

10) Elabore um algoritmo que leia o nome e o tempo de 2 corredores (em segundos) e que informe o nome do mais rápido ou se chegaram juntos.

11) Elabore um algoritmo que leia o nome e a nota de dois alunos e que informe qual deles se saiu melhor na prova, ou se os dois tiveram o mesmo rendimento.

12) Elabore um algoritmo que solicite ao usuário o valor do salário mínimo e o valor do seu salário bruto e que calcule e escreva o valor descontado do INSS, o valor do descontado do IRRF e o salário líquido. Considerar os descontos con-forme os quadros abaixo:

13) Uma loja que trabalha com xerox, tem a seguinte tabela de preços: De 1 a 10 cópias..............R$ 0,12

De 11 a 50 cópias............R$ 0,10 Acima de 50 cópias.........R$ 0,08

A partir da solicitação do usuário do número de cópias, calcular e escrever o valor a ser pago. 14) Construa um algoritmo que leia o sexo, nº de dependentes, tempo de trabalho (em anos) e o salário um funcionário de

uma empresa. Construa um algoritmo calcule o aumento recebido e o novo salário do funcionário. • 20% de aumento → Sexo masculino, tempo de trabalho superior a 10 anos e nº de dependentes a partir de 7 • 10% de aumento Sexo masculino, tempo de trabalho inferior a 10 anos e nº de dependentes inferior a 7 • 15% de aumento Sexo feminino, qualquer tempo de trabalho, qualquer número de dependentes • 5 % de aumento Os demais funcionários

Quantidade de Ingressos % Desconto Até 3 0% 4 a 10 10% 11 a 15 15% 16 ou mais 20%

INSS Quantidade de Salários Percentual Descontos Até 3 sem desconto Acima de 3 até 11 8% Acima de 11 11%

IRRF Quantidade de Salários Percentual Descontos Até 8 sem desconto Acima de 8 até 15 15%

Acima de 15 25%

Page 27: Unileste - Apostila Fundamentos Da Computação I

25

Fundamentos da Computação I 2o Semestre / 2006

15) Elabore uma função que, dada a idade de um nadador, classifique-o em uma das seguintes categorias:

• Infantil A = Até 8 anos • Infantil B = De 9 até 11 anos • Juvenil A = De 12 até 14 anos • Juvenil B = De 15 até 18 anos • Adulto = De 19 anos acima.

16) Para o programa abaixo identifique as entradas, as saídas e o que o programa faz: Program Salario; Uses Crt; Var SB,SM,VH,INSS,IR,SL,QSM:Real; NH,ND:Integer; Begin

ClrScr; WriteLn('Exemplo Estrutura de Decisão'); WriteLn; Write('Qual o valor do Salário Mínimo? '); ReadLn(SM); WriteLn; Write('Numero de Dependentes: '); ReadLn(ND); Write('Valor por Hora Trabalhada: '); ReadLn(VH); Write('Numero de Horas Trabalhadas no Mes: '); ReadLn(NH); SB := ND * 35.30 + NH * VH; WriteLn('Valor do Salário Bruto: ',SB:8:2); QSM := SB / SM; WriteLn('Qtde de Salários Mínimos: ',QSM:8:2); IF QSM <= 7 THEN INSS := SB * 0.075 ELSE IF QSM <= 10 THEN INSS := SB * 0.1 ELSE INSS := SB * 0.11; WriteLn('Valor do INSS: ',INSS:8:2); IF QSM <= 8 THEN IR := 0 ELSE IF QSM <= 15 THEN IR := (SB-INSS-90*ND)*0.15 ELSE IR := (SB-INSS-90*ND)*0.27; WriteLn('Valor do IR: ',IR:8:2); SL := SB - INSS - IR; WriteLn('Seu Salário Liquido e: ',SL:8:2); ReadKey;

End. 17) Considere o programa acima, para as entradas listadas a seguir indique quais serão os valores de saída.

a) SM = 300 ND = 5 VH = 22 NH = 200

b) SM = 300 ND = 1 VH = 10 NH = 200

c) SM = 300 ND = 3 VH = 14 NH = 200

Page 28: Unileste - Apostila Fundamentos Da Computação I

26

Fundamentos da Computação I 2o Semestre / 2006

18) Uma loja tem uma promoção que funciona da seguinte maneira: Compras no valor de

até 100 reais terão desconto de 5% acima de 100 até 250 reais terão desconto de 10% acima de 250 reais terão desconto de 15%

Elabore um algoritmo que a partir do total da compra informe o valor do desconto dado ao cliente e quanto ele deverá pagar.

19) Elabore um algoritmo que leia o peso e a altura de um a pessoa e que calcule e informe seu IMC (Índice de Massa Corporal) conforme a fórmula IMC = peso / altura2 E que em seguida informe, de acordo com o valor do IMC, a Situação da Pessoa Até 20 Magro Acima de 20 até 25 Normal Acima de 25 até 30 Sobrepeso Acima de 30 Obesidade

20) Uma empresa concederá um aumento de salário aos seus funcionários, variável de acordo com o cargo, conforme a tabela abaixo. Elabore um algoritmo que receba o salário e o cargo de um funcionário e calcule escreva o novo salá-rio. Se o cargo do funcionário não estiver na tabela, ele deverá, então, receber 40% de aumento.

Cargo Percentual Gerente 10% Engenheiro 20% Técnico 30%

21) Escrever um algoritmos que obtenha as 3 notas de um aluno nas avaliações e a nota de exercícios que fazem parte da avaliação. Calcular a média de aproveitamento, usando a fórmula: MA = (NotaAval1 + NotaAval2 * 2 + NotaAval3 * 3 + NotaExerc)/7. A atribuição de conceitos obedece a tabela: Média de Aproveitamento Conceito

>= 9,0 A >= 7,5 e < 9,0 B >= 6,0 e < 7,5 C < 6,0 D

O algoritmo deve escrever a média de aproveitamento, o conceito correspondente e a mensagem: APROVADO se o conceito for A,B ou C e REPROVADO se o conceito for D.

22) Escreva um algoritmo que recebe os coeficientes a, b e c de um polinômio de segundo grau ax2 + bx + c e determina quando este polinômio é igual a zero. Tome cuidado para calcular tudo corretamente e avise o usuário se houverem situações de erro.

23) Faça um algoritmo que recebe um ano e verifica se este ano era bissexto, imprimindo uma mensagem. As regras (pouco conhecidas) para um ano ser bissexto são:

i.Ele deve ser divisível por quatro. ii.Se for um ano terminado em 00, deve ser também divisível por 400.

24) Elabore um algoritmo que implemente uma calculadora com as funções de somar, subtrair, multiplicar e dividir. O programa deverá pedir ao utilizador os dois operandos, e perguntar qual a operação pretendida.

25) Elabore um algoritmo que dadas três temperaturas tiradas numa cidade ao longo do dia, indique qual a máxima e qual a mínima.

26) Numa empresa, os funcionários são pagos a R$ 25,00/hora. Pretende-se um algoritmo que a partir da leitura do núme-ro de horas de trabalho de um empregado em cada um dos 5 dias da semana. Considerando os descontos de 15% para o INSS e 10% de IR, calcule os vencimentos bruto e líquido do funcionário, bem como os respectivos descontos.

27) Elabore um Algoritmo que calcule o vencimento de um funcionário, sabendo que este é calculado adicionando a um dado vencimento base, as seguintes parcelas: 1% por cada ano de idade superior a 25 anos.

3% por cada ano de casa. 5% por cada filho ou outro dependente.

28) Construa um programa que leia 3 ângulos de um triângulo. Analise esses números conforme as especificações abaixo e faça o que se pede:

a. Verificar se um deles é um ângulo de 900. Caso isso ocorra esse tiriângulo é um triângulo retângulo. Exiba essa informação e calcule a soma dos quadrados (p. ex. S= CO2 + CA2). dos catetos desse triângulo. Será necessário obter o valor do cateto oposto e do cateto adjacente.

Page 29: Unileste - Apostila Fundamentos Da Computação I

27

Fundamentos da Computação I 2o Semestre / 2006

b. Quando não existir nenhum ângulo igual a 90, verificar se pelo menos dois ângulos são iguais. Caso

isso ocorra escreva a soma dos mesmos. c. Caso não ocorra nenhuma das situações acima calcule a área deste triângulo. Caso necessário solicite mais

dados . Área do triângulo é (base * altura )/2 29) Construa um programa que leia dois números inteiros. Com esses números faça o que se pede:

a. Caso os dois sejam pares calcule e escreva a soma do quadrado desses números (p. ex. S= A2 + B2). Escrever o resultado.

b. Caso o primeiro número seja par e o segundo impar deverá ser calculado a multiplicação desses números. Escrever o resultado.

c. Caso o primeiro número seja impar e o segundo par deverá ser calculado a subtração desses números. d. Em qualquer outra situação deverá ser a soma dos cubos (p. ex. S= A3 + B3). Escrever o resultado.

30) Construa um programa que leia 4 lados de um quadrilátero (figura geométrica de 4 lados). Analise se este quadrilátero

é um retângulo, um quadrado ou penas um quadrilátero sem classificação especial. Caso seja um quadrado calcular e escrever a área (lado*lado). Caso seja um retângulo calcular e escrever o perímetro (soma de todos os lados). OBS: considere que a ordem da informação dos lados poderá ser qualquer uma, logo terá que testar todas as possibilidades.

31) Construa um programa que leia o raio de três círculos. Analise esses dados conforme as especificações abaixo e faça o que se pede: a. Verificar se os círculos têm o mesmo raio. Caso isso ocorra calcular e

escrever o diâmetro desses círculos. Veja a figura ao lado. b. Quando os dois primeiros círculos tiverem o mesmo raio e a terceiro tiver

raio diferente desses dois primeiros, calcular e escrever o valor do perímetro destes 2 primeiros círculos. Perímetro de um círculo é dado por: Perímetro = π * Diâmetro

c. Caso não ocorra nenhuma das situações acima calcule a área de cada círculo. A área de um círculo é dada por : Área=π R2

32) Construa um programa que leia 3 ângulos de um triângulo. Analise esses números conforme as especificações abaixo e faça o que se pede: a. Verificar se todos os ângulos são iguais. Caso isso ocorra escreva a soma dos mesmos. b. Quando eles não forem todos iguais, verificar se um deles é um ângulo de 900. Caso isso ocorra esse triângulo é

um triângulo retângulo. Exiba essa informação. c. Caso não ocorra nenhuma das situações acima calcule a área deste triângulo. Caso necessário solicite mais dados.

Área do triângulo é (base * altura )/2

Raio

Diâmetro

Page 30: Unileste - Apostila Fundamentos Da Computação I

28

Fundamentos da Computação I 2o Semestre / 2006

EESSTTRRUUTTUURRAASS DDEE CCOONNTTRROOLLEE –– EEssttrruuttuurraa ddee RReeppeettiiççããoo

Considere o seguinte problema: Elabore um algoritmo que a nota do aluno e que determine escreva "Aprovado" se o aluno obter nota superior ou igual a 60 e "Reprovado" se o aluno obter nota inferior a 60. Uma solução para o pro-blema poderia ser a seguinte:

Algoritmo Resultado; Var NOTA: inteiro; Inicio escreva (‘Informe a nota do Aluno: ’); leia (NOTA); se (NOTA >= 60) então inicio

escreva (‘O aluno foi aprovado’); fim senão inicio

escreva (‘O aluno foi reprovado’); fim; fim-algoritmo. O algoritmo acima deverá ser chamado ou executado 30 vezes para mostrar o resultado de todos os 30 alunos de

uma turma, pois a execução do mesmo permite informar a nota de somente um aluno. Podemos alterá-lo para que com somente uma chamada ou execução o mesmo possa mostrar o resultado de todos os trinta alunos.

Para isso é necessário utilizarmos uma ESTRUTURA DE REPETIÇÃO, ou seja, uma estrutura de controle do fluxo lógico que permite executar diversas vezes um mesmo trecho do algoritmo, porém, sempre verificando antes de cada execução se é "permitido" repetir o mesmo trecho.

Comando de Repetição Enquanto Para realizar repetições com teste no início, podemos utilizar a estrutura ENQUANTO, que permite que um bloco

de comandos ou uma ação primitiva seja repetida enquanto uma determinada (condição) for verdadeira.

Algoritmo Resultado; Var NOTA, CONTALUNOS : inteiro; inicio CONTALUNOS := 1; { inicializar com 1} enquanto (CONTALUNOS < = 30) faça inicio escreva ( ‘ Informe a nota do Aluno: ‘); leia (NOTA); se (NOTA >= 60) então inicio

escreva ( ‘ O aluno foi aprovado ‘); fim senão inicio

escreva ( ‘O aluno foi reprovado ‘); fim; {contar quantos alunos já foram examinados} CONTALUNOS := CONT ALUNOS + 1;

fim-enquanto; fim-algoritmo.

enquanto (condição) faça inicio comando 1; comando 2; comando 3; . . comando n; fim-enquanto;

Page 31: Unileste - Apostila Fundamentos Da Computação I

29

Fundamentos da Computação I 2o Semestre / 2006

Exemplos de Algoritmos com Estrutura de Repetição

1) Crie um algoritmo que, após sua execução, escreva as seguintes seqüências: a) 1, 3, 5, 7, ..., 21.

Algoritmo Exemplo_1a; Var N: inteiro; inicio N := 1; enquanto (N < = 21) faça inicio escreva (N); N := N + 2; fim-enquanto; fim-algoritmo.

b) 0, 2, 4, 6, ..., 14. Algoritmo Exemplo_1b; Var N: inteiro; inicio N := 0; enquanto (N < = 14) faça inicio escreva (N); N := N + 2; fim-enquanto; fim-algoritmo.

c) 0, 4, 8, ..., 40. Algoritmo Exemplo_1c; Var N : inteiro; inicio N := 0; enquanto (N < = 40) faça inicio escreva (N); N := N + 4; fim-enquanto; fim-algoritmo.

d) 2, 4, 8, ..., 1024. Algoritmo Exemplo_1d; Var N: inteiro; inicio N := 2; enquanto (N < = 1024) faça inicio escreva (N); N := N * 2; fim-enquanto; fim-algoritmo.

2) Elabore um algoritmo que exiba na tela os números ímpares de 1 até 100 ALGORITMO Sequencia Var x : inteiro; inicio x := 1; enquanto (x < 100) faca

Page 32: Unileste - Apostila Fundamentos Da Computação I

30

Fundamentos da Computação I 2o Semestre / 2006

inicio escreva ( x , ‘_’); x := x + 2; fim-enquanto; fim.algoritmo.

3) Analise os passos abaixo e descreva o que resultará após a execução: a) X := 2; Y := 3; TEMP := X; X := Y; Y := TEMP; b) X := 1; enquanto X <= 10 faça inicio escreva (X); X := X + 1; fim-enquanto; c) X := 1; enquanto X <= 10 faça inicio se (MOD(X/2) = 0) então

inicio escreva (“Número Par “);

fim senão

inicio escreva (“Número Ímpar “);

fim; X := X + 1;

fim-enquanto;

4) Elabore um Algoritmo que imprima todos os números pares existentes entre N1 e N2, onde N1 e N2 são números naturais fornecidos pelo usuário.

Algoritmo Exemplo4; Var N1, N2, N: inteiro; inicio escreva (‘ Define os números pares entre dois números informados ‘); escreva (‘ Digite N1 ‘); leia (N1); escreva (‘ Digite N2 ‘); leia (N2); N := N1; enquanto (N<= N2) faça inicio se (N mod 2) então inicio

escreva (N); fim; N := N + 1; fim-enquanto; fim-algoritmo.

E se o primeiro número (N1) for maior que o segundo (N2)?

5) Construir um programa que leia a idade de 10 pessoas e conte quantas possuem mais de 50 anos. Exibir o resultado. Algoritmo Pessoas;

x y TEMP2 3 2 3 2

X 1 2 3 4 5 6 7 8 9

10 11 X

1 número ímpar 2 número par 3 número ímpar 4 número par 5 número ímpar 6 número par 7 número ímpar 8 número par 9 número ímpar

10 número par 11

Page 33: Unileste - Apostila Fundamentos Da Computação I

31

Fundamentos da Computação I 2o Semestre / 2006

Var x, Id, Qtd50, QtdP : inteiro; inicio Qtd50 := 0; x := 1; enquanto (x <= 10) faca inicio escreva(‘Informe a idade da ‘, x , ‘ ª pessoa’); leia (Id); Se (Id > 50) então Inicio Qtd50 := Qtd50 +1; Fim; x := x + 1; fim-enquanto; escreva ( ‘Existem’, Qtd50, ‘pessoas com idade maior que 50 anos’); fimalgoritmo.

6) Elabore um Algoritmo que leia o nome e o salário bruto de 50 funcionários. O Algoritmo deverá calcular o salário líquido (usando a fórmula SALÁRIO-LÍQUIDO = SALÁRIO-BRUTO * 0,80). O Algoritmo deve escrever o nome e o salário líquido de todos os funcionários que possuem salário líquido superior a R$600,00.

Algoritmo Funcionarios; Var X: inteiro; NOME: caracter; SALB, SALLIQ: real; inicio X := 1; enquanto (X <= 50) faça inicio escreva (‘Digite o nome: ‘); leia (NOME); escreva (‘Digite o salário bruto: ‘);

leia (SALB); SALLIQ := SALB * 0.80 ; se (SALLIQ > 600) então inicio escreva (‘O funcionário: ‘, NOME, ‘ tem o salário líquido igual a : ‘, SALLIQ); fim; X := X + 1; fim-enquanto; fim-algoritmo.

7) Elabore um algoritmo para escrever todos os anos bissextos que ocorreram a partir do ano zero, sabendo que este ano é bissexto.

Algoritmo AnoBissexto; Var ANO: inteiro; inicio ANO := 0; enquanto (ANO < = 2006) faça

inicio escreva ( ‘ O ano ‘, ANO, ‘ é bissexto ‘); ANO := ANO + 4; fim-enquanto; fim-algoritmo.

8) Elabore um algoritmo que leia o nome e a população de 10 cidades e calcule e escreva a população total das cidades. Algoritmo Cidades; Var Nome : caracter;

Page 34: Unileste - Apostila Fundamentos Da Computação I

32

Fundamentos da Computação I 2o Semestre / 2006

x, Pop, SomaPop : inteiro;

inicio SomaPop := 0; x := 1; enquanto (x <= 10) faca inicio escreva(‘Informe o Nome da ‘, x , ‘ ª cidade’); leia (Nome); escreva(‘Informe a população da ‘, x , ‘ ª cidade’); leia (Pop); SomaPop := SomaPop + Pop; x := x + 1; fim-enquanto; escreva ( ‘O população total das cidades é: ’, SomaPop); fimalgoritmo.

9) Elabore um algoritmo que leia o nome e a altura de um grupo de 15 pessoas e que calcule e escreva a altura média. Algoritmo Pessoas; Var Nome : caracter;

x : inteiro; Alt, SomaAlt, MediaAlt : real;

inicio SomaAlt := 0; x := 1; enquanto (x <= 15) faca inicio escreva(‘Informe o Nome da ‘, x , ‘ ª pessoa’); leia (Nome); escreva(‘Informe a altura da ‘, x , ‘ ª pessoa’); leia (Alt); SomaAlt := SomaAlt + Alt; x := x + 1; fim-enquanto; MediaAlt := SomaAlt/15; escreva ( ‘A idade média das pessoas é: ’, MediaAlt); fimalgoritmo.

10) Elabore um algoritmo que leia o sexo e a altura de um grupo de 20 pessoas e calcule a média das alturas dos homens e das mulheres.

Algoritmo AlturaPessoas; Var X, CONTH, CONTM: inteiro; SEXO: caracter; ALTURA, MEDIAALTH,MEDIAALTM, SOMAALTH, SOMAALTM: real; inicio CONTH := 0;

CONTM := 0; SOMAALTH := 0; SOMAALTM := 0; X := 1;

enquanto (X <= 20) faça inicio

escreva (‘Digite SEXO (H, M) : ‘); leia (SEXO); escreva (‘ Digite altura : ‘); leia (ALTURA); se (SEXO = ‘M’) então inicio

Page 35: Unileste - Apostila Fundamentos Da Computação I

33

Fundamentos da Computação I 2o Semestre / 2006

CONTM := CONTM + 1; SOMAALTM := SOMAALTM + ALTURA; fim senão inicio CONTH := CONTH + 1; SOMAALTH := SOMAALTH + ALTURA; fim; X := X + 1; fim-enquanto; MEDIAALTH := SOMAALTH / CONTH; escreva ( ‘A media de altura dos homens é: ‘, MEDIAALTH); MEDIAALTM := SOMAALTM / CONTM;

escreva ( ‘A media de altura das mulheres é: ‘, MEDIAALTM); fim-algoritmo.

E se não existirem homens ou mulheres para o cálculo? 11) Elabore um algoritmo que leia o sexo e a altura de um grupo de 20 pessoas e calcule a média das alturas dos homens e

das mulheres. Considere a não existência de homens ou mulheres para o cálculo. Algoritmo Pessoas; Var X, CONTH, CONTM: inteiro; SEXO: caracter; ALTURA, MEDIAALTH,MEDIAALTM, SOMAALTH, SOMAALTM: real; inicio CONTH := 0;

CONTM := 0; SOMAALTH := 0; SOMAALTM := 0; X := 1;

enquanto (X <= 20) faça inicio

escreva (‘Digite SEXO (H, M) : ‘); leia (SEXO); escreva (‘ Digite altura : ‘); leia (ALTURA); se (SEXO = ‘M’) então inicio CONTM := CONTM + 1; SOMAALTM := SOMAALTM + ALTURA; fim senão inicio CONTH := CONTH + 1; SOMAALTH := SOMAALTH + ALTURA; fim; X := X + 1; fim-enquanto; se (CONTH = 0) então inicio

escreva (‘ Não ha homens para calculo ‘); fim

senão inicio MEDIAALTH := SOMAALTH / CONTH; escreva ( ‘ A media de altura dos homens é: ‘, MEDIAALTH); fim; se (CONTM = 0) então

Page 36: Unileste - Apostila Fundamentos Da Computação I

34

Fundamentos da Computação I 2o Semestre / 2006

inicio

escreva (‘ Não existe mulheres para calculo ‘); fim

senão inicio MEDIAALTM := SOMAALTM / CONTM;

escreva ( ‘ A media de altura das mulheres é: ‘, MEDIAALTM); fim; fim-algoritmo.

12) Foi realizada uma pesquisa de algumas características físicas da população de uma certa região, a qual coletou os seguintes dados de cada um dos seus 100 habitantes: Sexo (masculino e feminino), Cor dos olhos (azuis, verdes, cas-tanhos), Cor dos cabelos (louros, castanhos, pretos) e Idade. Faça um Algoritmo que determine e escreva:

• A maior idade dos habitantes; • O número de indivíduos do sexo feminino cuja idade está entre 20 e 40 anos inclusive, e que tenham olhos

verdes e cabelos pretos. Algoritmo Populacao; Var IDADE, MAIORIDADE, X, QTHABCAR: inteiro; SEXO, COROLHOS, CORCAB: caracter; inicio X := 1; QTHABCAR := 0;

MAIORIDADE := 0; enquanto (X <= 100) faça

inicio escreva (‘ Digite o sexo ( F ou M) : ‘);

leia (SEXO); escreva ( ‘Digite a cor dos olhos: ‘);

leia (COROLHOS); escreva (‘ Digite idade : ‘);

leia (IDADE); se (IDADE > MAIORIDADE) então inicio

MAIORIDADE := IDADE ; fim;

se (SEXO = ‘F ’) e (COROLHOS = ‘ V’) e (CORCAB = ‘ P ’) e (IDADE >= 20) e (IDADE <= 40) então inicio QTHABCAR := QTHABCAR + 1;

fim; X := X + 1;

fim-enquanto; escreva ( ‘ A maior idade é : ‘, MAIORIDADE ); escreva ( ‘ O número de pessoas com a características é: ‘ , QTHABCAR); fim-algoritmo.

13) Construa um Algoritmo que, dado um conjunto de 20 valores inteiros e positivos, determine qual o menor e o maior valor do conjunto.

Algoritmo Valores; Var X, MAIORNUM, MENORNUM, NUMERO : inteiro; inicio X := 1;

MAIORNUM := - 3; MENORNUM := 999999;

enquanto (X <= 20) faça inicio escreva (‘ Digite o número ‘);

leia (NUMERO);

Page 37: Unileste - Apostila Fundamentos Da Computação I

35

Fundamentos da Computação I 2o Semestre / 2006

se (NUMERO > MAIORNUM) então inicio MAIORNUM := NUMERO; fim; se (NUMERO < MENORNUM) então inicio MENORNUM := NUMERO; fim; X := X + 1; fim-enquanto; escreva ( ‘ O maior número é : ‘, MAIORNUM ); escreva ( ‘ O menor número é: ‘, MENORNUM); fim-algoritmo.

14) Elabore um algoritmo que leia a altura e o sexo de um grupo de 50 pessoas e que determine a maior e a menor altura do grupo.

Algoritmo Pessoas; Var SEXO: caracter; ALTURA, MENORALTURA, MAIORALTURA: real; X : inteiro; inicio MENORALTURA := 5;

MAIORALTURA := 0; X := 1;

enquanto (X <= 50) faça inicio escreva (‘ Digite altura ‘);

leia (ALTURA); se (ALTURA > MAIORALTURA) então inicio

MAIORALTURA := ALTURA; fim; se (ALTURA < MENORALTURA) então inicio

MENORALTURA := ALTURA; fim; X := X +1; fim-enquanto; escreva ( ‘ A maior altura do grupo é: ‘, MAIORALTURA); escreva ( ‘ A menor altura do grupo é: ‘, MENORALTURA); fim-algoritmo.

15) Construa um algoritmo que leia um conjunto de dados contendo altura, cor dos olhos e sexo (masculino e feminino) de um grupo de 100 pessoas e que calcule e escreva:

• Maior altura entre os homens; • Menor altura entre as mulheres; • Média de altura de todo o grupo; • Quantas mulheres de olhos azuis.

Algoritmo Pessoas; Var QTMULOA, X: inteiro; SEXO, COROLHOS: caracter; ALTURA, MAIORALTH, MENORALTM, SOMAALTG: real; inicio MAIORALTH := 0; MENORALTM := 5; QTMULOA := 0; X := 1;

Page 38: Unileste - Apostila Fundamentos Da Computação I

36

Fundamentos da Computação I 2o Semestre / 2006

SOMAALTG := 0; enquanto (X <= 100) faça inicio escreva ( ‘Digite altura : ‘);

leia ( ALTURA); escreva (‘ Digite a cor dos olhos: ‘);

leia (COROLHOS); escreva ( ‘ Digite sexo: ‘);

leia (SEXO); se (ALTURA > MAIORALTURA) e (SEXO = ‘H’) então inicio

MAIORALTURA := ALTURA ; fim; se (ALTURA < MENORALTM) e (SEXO = ‘ M ’) então inicio

MENORALTM := ALTURA; fim; QTPESS := QTPESS + 1; SOMAALTG := SOMAALTG + ALTURA; X := X + 1; fim-enquanto; escreva (‘A maior altura dos homens é: ‘, MAIORALTH); escreva (‘ A menor altura das mulheres é: ‘, MENORALM); MEDIAALTG := SOMAALTG / 100; escreva (‘A media geral é : ’, MEDIAALTG); fim; fim-algoritmo.

16) Elabore um algoritmo que leia os dados (número de identificação, cor, peso) dos 20 bois de um frigorífico e que cal-cule e escreva:

• O número de identificação e o peso do boi mais gordo; • O boi preto de maior peso e o seu peso; • A média de peso de todo o rebanho.

Algoritmo Bois; Var NUIDENT, NUIDENTPG, NUIDENTGORDO, X: inteiro; COR: caracter; PESO, PESOPG, PESOGORDO, SOMAPESO, MEDIAPESO: real; inicio SOMAPESO := 0; X := 1;

PESOPG := 0; PESOGORDO := 0;

enquanto (X <= 200) faça inicio escreva (‘ Digite o numero de identificação: ‘);

leia (NUIDENT); escreva (‘ Digite a cor: ‘); leia (COR); escreva (‘ Digite peso: ‘); leia (PESO); SOMAPESO := SOMAPESO + PESO; se (PESO > PESOGORDO) então inicio PESOGORDO := PESO; NUIDENTGORDO := NUIDENT; fim;

Page 39: Unileste - Apostila Fundamentos Da Computação I

37

Fundamentos da Computação I 2o Semestre / 2006

se (PESO > PESOGORDO) e (COR = ‘PRETO’) então inicio PESOPG := PESO; NUIDENTPG := NUIDENT; fim; X := X + 1; fim-enquanto; MEDIAPESO := SOMAPESO / 200; escreva ( ‘ A media de peso é : ‘, MEDIAPESO ); escreva ( ‘ O boi preto mais gordo é : ‘, NUIDENTPG , ‘ e o seu peso é: ‘, PESOPG); escreva ( ‘ O boi mais gordo é : ‘, NUIDENTGORDO, ‘ e o seu peso é: ‘, PESOGORDO); fim-algoritmo.

17) Elabore um conjunto que leia o nome, o salário, o número do departamento e o sexo de 1000 funcionários de uma empresa e que calcule e escreva: o maior salário e o nome do funcionário que o possui; o menor salário e o nome do funcionário que o possui; a média de salário dos homens, das mulheres, de todo o grupo e do departamento 01.

Algoritmo Funcionarios; Var NUDEP, X, NUFUNCH, NUFUNCM, NUFUNCDEP1: inteiro; SEXO, NOME, NOMEMS, NOMEMENS: caracter; SALARIO,MAIORSAL,MENORSAL,SOMASAL, SOMASALH, SOMASALM, SOMASALDEP1:real; inicio MAIORSAL := 0;

MENORSAL := 10000; SOMASAL := 0; SOMASALH := 0; X := 1; enquanto (X <= 1000) faça inicio escreva (‘ Digite nome : ‘); leia (NOME); escreva (‘ Digite salário: ‘); leia (SALARIO); escreva (‘ Digite sexo: ‘); leia (SEXO); escreva (‘ Digite número do departamento: ‘); leia (NUDEP); se (SALARIO > MAIORSAL) então inicio MAIORSAL := SALARIO; NOMEMS := NOME; fim; se (SALARIO < MENORSAL) então inicio MENORSAL := SALARIO;

NOMEMES := NOME; fim; SOMASAL := SOMASAL + SALARIO; se (SEXO = ‘h’) ou (SEXO = ‘H’) então inicio SOMASALH := SOMASALH + SALARIO;

NUFUNCH := NUFUNCH + 1; fim senão inicio SOMASALM := SOMASALM + SALARIO;

NUFUNCM := NUFUNCM + 1;

Page 40: Unileste - Apostila Fundamentos Da Computação I

38

Fundamentos da Computação I 2o Semestre / 2006

fim; se (NUDEP = 1) então inicio SOMASALDEP1 := SOMASALDEP1 + SALARIO; NUFUNCDEP1 := NUFUNCDEP1 + 1; fim; X := X + 1; fim-enquanto; escreva (‘ O maior salário do grupo é: ‘, MAOIRSAL, ‘ do funcionário: ‘, NOMEMS); escreva (‘ O menor salário é: ‘, MENORSAL, ‘ do funcionário: ‘, NOMEMES); MEDIASAL := SOMASAL / 1000; escreva (‘ A média de salário do grupo é: ‘, MEDIASAL); se (CONTH = 0) então inicio

escreva (‘Não há homens para cálculo’); fim senão inicio MEDIASALH := SOMASALH / CONTH; escreva ( ‘ A média de salário dos homens é: ‘, MEDIASALH); fim; se (CONTM = 0) entao inicio

escreva (‘Não existem mulheres para calculo’); fim senao inicio MEDIASALM := SOMASALM / CONTM; escreva ( ‘A média de salário das mulheres é: ‘, MEDIASALM); fim; fim-algoritmo.

18) Elabore um algoritmo que leia o nome e a altura de um grupo indeterminado de pessoas e que: a) Determine e escreva a maior altura e o nome da pessoa que a possui; b) Determine e escreva a menor altura do grupo.

OBS.: O usuário deverá informar a quantidade de pessoas do grupo. Algoritmo Pessoas; Var ALT, MAIORALT, MEALT: real; NOME, NOMEMALT, NOMEMEALT: caracter; X, QTDPESS : inteiro; inicio MEALT := 3; MAIORALT := 0; X := 1; escreva (‘ Informe a quantidade de pessoas: ‘); leia (QTDPESS); enquanto (X <= QTDPESS) faça inicio escreva(‘ Digite o nome: ‘);

leia (NOME); escreva (‘ Digite a altura: ‘);

leia (ALT); se (ALT > MAIORALT) então início NOMEMALT := NOME; MEALT := ALT;

Page 41: Unileste - Apostila Fundamentos Da Computação I

39

Fundamentos da Computação I 2o Semestre / 2006

fim; se (ALT < MEALT) então inicio

MEALT := NOME; fim; X := X +1; fim-enquanto; escreva(‘ O nome de maior altura é: ‘, NOMEMALT); escreva(‘ A menor altura é: ‘, MEALT, ‘ e é do(a): ‘, NOMEMEALT);

fim-algoritmo.

19) Elabore um Algoritmo que leia o nome e a altura de um grupo indeterminado de pessoas e que: a) Determine e escreva a maior altura e o nome da pessoa que a possui; b) Determine e escreva a menor altura do grupo.

OBS.: O último elemento do conjunto inválido será aquele que o valor informado para a altura seja igual a 0 (zero). Algoritmo Pessoas; Var ALT, MAIORALT, MEALT: real; NOME, NOMEMALT, NOMEMEALT: caracter; inicio MEALT := 3; MAIORALT := 0; escreva (‘ Digite a altura: ‘); leia (ALT); enquanto (ALT < > 0) faça inicio escreva(‘ Digite o nome: ‘);

leia (NOME); se (ALT > MAIORALT) então início NOMEMALT := NOME; MEALT := ALT; fim; se (ALT < MEALT) então inicio

MEALT := NOME; fim; escreva (‘ Digite a altura: ‘);

leia (ALT); fim-enquanto; escreva(‘ O nome de maior altura é: ‘, NOMEMALT); escreva(‘ A menor altura é: ‘, MEALT, ‘ e é do(a): ‘, NOMEMEALT); fim-algoritmo.

Exercícios - Algoritmos com Estrutura de Repetição 1) Construa um algoritmo que leia um conjunto de dados contendo altura, cor dos olhos e sexo (masculino e feminino)

de um grupo de 20 pessoas e que calcule e escreva: • maior altura entre os homens; • menor altura entre as mulheres; • média de altura de todo o grupo; • quantos mulheres de olhos azuis.

2) Determine o resultado do algoritmo abaixo: Algoritmo teste; Var X,Y: inteiro; inicio X := 4; Y :=1; enquanto X <= 9 faça inicio

Page 42: Unileste - Apostila Fundamentos Da Computação I

40

Fundamentos da Computação I 2o Semestre / 2006

Y := X – 2; X := X + 1; fim-enquanto; escreva (X, Y); fim-algoritmo.

3) Construa um algoritmo que, dado um conjunto de valores inteiros e positivos, determine qual o menor e o maior valor do conjunto. O final do conjunto de valores é conhecido através do valor -1, que não deve ser considerado.

4) Elabore um algoritmo que leia o nome, o salário, o número do departamento e o sexo de 80 funcionários de uma em-presa e que calcula e escreva:

a) o maior salário do grupo; b) a média de salário das mulheres; c) o menor salário e o nome do funcionário que o possui; d) a média de salário dos departamentos de número 03 e 04.

5) Elabore um algoritmo que solicite ao usuário o primeiro elemento de uma PA (A1) e a sua razão. E que calcule e es-creva a soma dos 30 primeiros elementos da PA.

6) Elabore um algoritmo que solicite as 10 notas de um aluno e que calcule e escreva : • a média do aluno; • escreva a mensagem “APROVADO” se a média foi superior a 60 e caso contrário “REPROVADO”; • escreva a quantidade de notas inferiores a 50 pontos.

7) Elabore um algoritmo que escreva os números: 3,9,27, ......,243. 8) Elabore um algoritmo que escreva os números: 3,6,9, ... , 60. 9) Elabore um algoritmo que solicite ao usuário o sexo e a altura de 30 pessoas e que calcule e escreva o peso ideal de

acordo com a fórmula a seguir: homens : (72,7 * h ) - 58 mulheres : (62,1 * h ) - 44,7 10) Elabore um algoritmo que calcule e escreva uma tabela de graus centígrados em função de graus Fahrenheit que vari-

em de 50 a 150 de 1 em 1. A fórmula é: C = 5/9 ( F - 32). 11) Construa um algoritmo que, dado um conjunto de valores inteiros e positivos, determine qual o menor valor do con-

junto de 45 números. 12) Elabore um algoritmo que leia o sexo, a cor dos olhos e a altura de um grupo de um grupo de 100 pessoas. O algorit-

mo deverá determinar e escrever: • a maior altura das mulheres; • a menor altura das mulheres; • a média de altura de todo o grupo;

• a média de altura dos homens; • quantos homens possuem altura superior a 1,78 m;

13) Elabore um algoritmo que imprima todos os números pares existentes entre 30 e 200. 14) Elabore um algoritmo que leia os dados (número de identificação, cor, peso) dos 20 bois de um frigorífico e que cal-

cule e escreva: • O número de identificação e o peso do boi mais gordo; • O número de identificação e o peso do boi preto de mais gordo.

15) Elabore um algoritmo que leia o nome e o salário bruto de 50 funcionários. O algoritmo deverá calcular o salário lí-quido (usando a fórmula SALÁRIO-LÍQUIDO = SALÁRIO-BRUTO * 0,80). O algoritmo deve escrever o nome e o salário líquido de todos os funcionários que possuem salário líquido superior a R$600,00.

16) Determine os valores X e Y após a execução do algoritmo. Obs: Demonstrar o resultado através de chinezinho. Algoritmo Calcxy; Var X, Y, INDICE: inteiro; inicio X := 0;

Y := 2; INDICE := 4;

enquanto INDICE <= 10 faça inicio X := 3 * Y - 5; Y := INDICE + 4; INDICE := INDICE + 1; fim-enquanto; escreva (X, Y);

Valor final de X eY X = ________ Y =_________

Page 43: Unileste - Apostila Fundamentos Da Computação I

41

Fundamentos da Computação I 2o Semestre / 2006

fim-Algoritmo.

17) Construa um algoritmo que leia o nome, a idade, número de dependentes, o salário e o sexo de 50 funcionários de uma empresa. Analise cada questão abaixo. Seu algoritmo deverá dar uma solução a cada uma delas:

• Quando o funcionário for homem, com idade acima de 44 e possuir número de dependentes acima de 7 seu sa-lário deverá ter um aumento de 25%. Calcule e escreva o seu novo salário.

• Quando o funcionário for uma mulher, com idade superior a 40 anos ou número de dependente acima de 5 de-verá ter um aumento de 20%. Calcule e escreva o seu novo salário.

• Os demais funcionários deverão ter um aumento de 5%; • Calcule e escreva a média das idades funcionários da empresa.

18) Construa um algoritmo que leia o nome de 20 países, a área territorial e a população de cada um deles. Calcule e es-creva qual a média populacional dos países que possuem área menor que 8000 metros quadrados. Calcule e escreva também a soma das áreas de todos os países.

19) Elabore um algoritmo que leia a nota de 20 alunos de uma turma e que: a) Determine e escreva quantos alunos obtiveram nota igual ou superior a 60 pontos; b) Determine e escreva quantos alunos obtiveram nota entre 30 e 40 pontos.

Page 44: Unileste - Apostila Fundamentos Da Computação I

42

Fundamentos da Computação I 2o Semestre / 2006

20) Dado o algoritmo abaixo, determine os valores finais de X e Y: Inicio

21) Analise o programa abaixo e faça o rastreio do mesmo: Algoritmo Exemplo2; Var N: inteiro; inicio

Soma:=0; N:= 1; enquanto (N<= 500) faça inicio escreva(N); N := N * 5; Soma:= Soma + N; fim-enquanto; escreva(Soma ); fim-algoritmo

22) Nas eleições do segundo turno, estavam disputando a vaga de prefeito da cidade de BH dois candidatos, um chamado A e o outro B. Sabendo-se que o número de eleitores de BH chegam a 300.000, construa um algoritmo que seja capaz de contar o número de votos que obteve o candidato A e o candidato B. Para isso será necessário perguntar para cada um dos eleitores o nome do candidato em que votou e contar os votos de cada um. O seu algoritmo deverá responder os resultados encontrados.

23) Construa um algoritmo que leia 10 números e descubra se eles são todos maiores que 10. O seu algoritmo deverá analisar os números e dar apenas uma resposta final.

24) Construa um algoritmo que leia um conjunto de 200 nomes de eleitores, com seus respectivos sexo e idade. Calcule e escreva quantas pessoas possuem, ao mesmo tempo, sexo feminino e idade entre 16 e 18 anos. Calcule e escreva o se-xo e o nome de todos os eleitores que tenham mais de 70 anos.

25) Um candidato à prefeitura de uma cidade, depois das eleições foi fazer as contas para descobrir quanto foi gasto de dinheiro em sua campanha. Sabendo que este candidato teve total de 200 despesas e que cada despesa possuía um va-lor diferente, construa um algoritmo que: a) Leia o nome e o valor de dada uma das despesas e calcule e escreva a despesa total.; (ex: santinhos, R$600,00)

Algoritmo Exemplo; Var X, Y, NUCHAMADA: inteiro; inicio escreva(‘Digite o num. Chamada:’); leia ( NUCHAMADA); se (NUCHAMADA mod 2 > 2) então inicio

X := NUCHAMADA; fim senão inicio X := NUCHAMADA + 1; Y := NUCHAMADA - 3; fim; se (X > 2) então inicio

X := X + 2 fim senão inicio

Y := Y - 5; fim escreva (‘Os valores de X e Y são: ‘, X, Y); fim-algoritmo.

X=------------ Y=------

N Soma

O que este algoritmo está fazendo?

Page 45: Unileste - Apostila Fundamentos Da Computação I

43

Fundamentos da Computação I 2o Semestre / 2006

b) Calcule e escreva também qual foi a média das despesas; c) Calcule e escreva o nome da despesa mais cara.

26) Elabore um algoritmo que leia a idade e sexo de 30 pessoas e que: a) Determine e escreva quantos homens possuem idade acima de 30 anos; b) Determine e escreva a porcentagem de mulheres do grupo.

27) Elabore um algoritmo que leia a cor dos olhos(V,A, C,P), a idade e o sexo de 30 pessoas e que calcule e escreva: a) quantidade de homens de olhos azuis; b) quantidade de mulheres do grupo; c) maior altura entre as mulheres;

d) porcentagem de mulheres do grupo que possuem olhos ver-des;

e) porcentagem de pessoas com cada uma das cores dos olhos. 28) Durante as olimpíadas uma equipe de 10 atletas disputou uma prova de natação. Sabe-se que : a piscina possui 100

metros de comprimento; o tempo gasto por cada atleta será informado pelo usuário, e que a velocidade é dada pela fórmula Velocidade= distância percorrida / tempo gasto (v = d/t ). Com esses dados construa um algoritmo que leia o nome, o peso, a idade, o tempo gasto por cada atleta para atravessar a piscina e calcule e escreva: a) A velocidade de cada atleta durante a travessia b) O tempo médio (média do tempo) gasto pelos nadadores que possuíam mais de 25 anos e peso abaixo de 55 qui-

los 29) Em um campeonato de vôlei de praia estavam disputando o título duas duplas, uma chamada A e a outra B. Sabendo-

se que o número de partidas disputadas foram 15, construa um algoritmo que seja capaz de saber quantos pontos cada uma das duplas obteve no final de 15 partidas. Para isso será necessário obter do usuário, a pontuação de cada dupla em cada partida e computar esses pontos. Depois, o seu algoritmo deverá responder os resultados encontrados e in-formar qual foi a dupla campeã.

30) Construa um algoritmo que leia, de um conjunto 5.000 jovens, a idade e grau de escolaridade (1 - para primeiro grau, 2 - para segundo grau, 3 – para terceiro grau) de cada um. Depois, calcule e escreva: a) Quantos jovens possuem, ao mesmo tempo, idade entre 18 e 25 anos e grau de escolaridade igual a 3, ou seja, já

está fazendo o 3º grau. b) A quantidade de jovens com grau de escolaridade igual a 1, ou seja, já concluiu o 1º grau. c) A quantidade de jovens com grau de escolaridade igual a 2, ou seja, já concluiu o 2º grau. d) Após esta análise responda se existem mais jovens com 1º ou 2º grau.

31) Analise atentamente o algoritmo abaixo e faça o rastreio do mesmo:

Algoritmo Exerc41; Var A, B, Id: inteiro; P: real; inicio //é necessário que use valore próximos da realidadeescreva ( ‘Informe sua idade: ’); leia ( Id ); escreva ( ‘Informe seu peso: ’); leia ( P ); enquanto (id >=1) e (P<=100) faça inicio se ( Id <=16) então inicio

P := P + Id; fim senão inicio

se ( Id >16) então inicio Id := Id - 5; fim fim;

P P + 5; fim-enquanto escreva ( ‘O valor de P e Id:’ P, Id); fim-algoritmo.

RRAASSTTRREEIIOO

Page 46: Unileste - Apostila Fundamentos Da Computação I

44

Fundamentos da Computação I 2o Semestre / 2006

32) Construa um algoritmo que leia um conjunto de nomes de pessoas, com seus respectivos sexo e idade.Peça

ao usuário para fornecer a quantidade de existentes nesse conjunto pessoas deseja informar. Calcule e escreva quantas pessoas possuem, ao mesmo tempo, sexo feminino e idade maior que 15 anos. Escreva o nome de todas as pessoas que são do sexo masculino.

33) Elabore um algoritmo que leia um conjunto de números inteiros. O último conjunto de dados não válido é aquele que o número informado é - 4. O algoritmo deve: a) Determine e escreva a média dos números; b) Determine e escreva quantos números são pares.

34) Elabore um algoritmo que leia a idade e o sexo de um grupo indeterminado de pessoas. O último conjunto de dados não válido é aquele que a idade informada é - 1. O algoritmo deverá determinar e escrever: a) a maior idade entre os homens; b) a menor idade entre as mulheres;

c) a média de idade entre as mulheres; d) a porcentagem de homens do grupo.

35) Um candidato à prefeitura de uma cidade, depois das eleições foi fazer as contas para descobrir quanto havia gasto de dinheiro em sua campanha. Sabendo que este candidato teve um número indeterminado de despesas e que cada despe-sa possuía um valor diferente, construa um algoritmo que : a) leia o valor de dada uma das despesas e calcule e escreva a despesa total.; b) Calcule e escreva também qual foi a média das despesas; c) Utilize como condição de parada o valor 0 para a despesa;

36) Construa um algoritmo que leia o nome de um número indeterminado de países e a população de cada um deles. Cal-cule e escreva qual é a maior população e qual é menor população. Utilize como FLAG (condição de parada) a letra x para o nome do país.

37) Solicitar ao usuário o tempo gasto na corrida pelos competidores (Flag -1). Exibir no vídeo o tempo gasto pelo vence-dor e o do que chegou em último lugar.

38) Sabe-se que um número indeterminado de funcionários de uma empresa receberão alguns dias de folga. Porém esta folga será dada em função do tempo de serviço. Para os funcionários que têm até 3 anos de casa, terá 5 dias de folga. Para funcionários com 4 a 8 anos de casa será dado uma folga de 10 das. Para funcionários com tempo de casa entre 9 e 10 anos será dado uma folga de 15 dias. Construa um algoritmo que seja capaz de ler o tempo de serviço e o nome de cada um dos funcionários. Com base nesta informação escreva quantos dias de folga ele terá direito. Utilize como FLAG (condição de parada) a letra X para o nome do funcionário.

39) Construa um algoritmo que leia o nome de um número indeterminado de países e a população de cada um deles. Cal-cule e escreva qual é a maior população e qual é menor população. Utilize como FLAG (condição de parada) a letra x para o nome do país.

RReeffeerrêênncciiaass BBiibblliiooggrrááffiiccaass

Farrer, Hanrry. Algoritmos Estruturados. Guanabara. Rio de Janeiro, 1986.

Guimarães, Lages. Algoritmos Estruturados.

Wirth, Niklaus. Programação Sistemática. Editora Campus. Rio de Janeiro, 1978.

Saliba, Walter Luiz Caram. Técnicas de Programação - Uma abordagem Estruturada. Editora Makron Books.

São Paulo, 1992.

Forbellone, André Luiz Villar. Lógica de Programação - A construção de Algoritmos e Estruturas de Dados.

Editora Makron Books. São Paulo, 1993.