22.10.2014 Views

Aprendendo a Programar Programando em Linguagem C - FSM

Aprendendo a Programar Programando em Linguagem C - FSM

Aprendendo a Programar Programando em Linguagem C - FSM

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

transforma o "computador" num poderoso veículo de entretenimento; pod<strong>em</strong> ser um processador de texto,<br />

que transforma o "computador" num poderoso veículo de edição de textos; pod<strong>em</strong> ser uma planilha<br />

eletrônica, que transforma o "computador" num poderoso veículo para manipulação de tabelas numéricas,<br />

pod<strong>em</strong> ser programas para gerenciar, por ex<strong>em</strong>plo, o dia a dia comercial de uma farmácia e pod<strong>em</strong> ser<br />

ambientes que permitam o desenvolvimento de games ou de programas para gerenciar o dia a dia comercial<br />

de uma farmácia. Talvez com exceção de um game, os programas citados acima são, na verdade, conjuntos<br />

de programas que pod<strong>em</strong> ser executados de forma integrada. Um conjunto de programas que pod<strong>em</strong> ser<br />

executados de forma integrada é chamado software. Por seu turno, as unidades do computador, associadas a<br />

outros equipamentos chamados periféricos, como uma impressora, constitu<strong>em</strong> o hardware. O que nos é útil é<br />

um conjunto software + hardware. Um conjunto deste tipo é chamado de um sist<strong>em</strong>a de computação. De<br />

agora <strong>em</strong> diante, os nossos processadores serão sist<strong>em</strong>as de computação. Isto é, quer<strong>em</strong>os escrever<br />

programas que sejam executado por um sist<strong>em</strong>a de computação.<br />

Como foi dito acima, o desenvolvimento de um programa que gerencie o dia a dia comercial de uma<br />

farmácia requer um compilador (ou um interpretador) que o traduza para a linguag<strong>em</strong> de máquina.<br />

Antigamente, as <strong>em</strong>presas que desenvolviam compiladores desenvolviam apenas estes programas, de tal<br />

sorte que o programador necessitava utilizar um processador de texto à parte para edição do programa fonte.<br />

Atualmente, os compiladores são integrados num sist<strong>em</strong>a de computação que contém, entre outros:<br />

1. Processador de texto, para a digitação dos programas fontes;<br />

2. Depurador, que permite que o programa seja executado comando a comando, o que facilita a<br />

descoberta de erros de lógica;<br />

3. Help, que descreve as sintaxes e as s<strong>em</strong>ânticas de todas as instruções da linguag<strong>em</strong>;<br />

4. Linker, que permite que um programa utilize outros programas.<br />

Rigorosamente falando, um sist<strong>em</strong>a constituído de um compilador e os softwares listados acima<br />

deveria ser chamado de ambiente de programação; é mais comum, entretanto, chamá-lo, simplesmente, de<br />

compilador.<br />

Os ambientes de programação que utilizamos para desenvolver os programas deste livro foram o<br />

compilador Turbo C, versão 2.01, e Turbo C++, versão 3.0, ambos desenvolvidos pela Borland<br />

International, Inc., o primeiro <strong>em</strong> 1988 e o segundo <strong>em</strong> 1992. Como se pode ver, são sist<strong>em</strong>as desenvolvidos<br />

há bastante t<strong>em</strong>po (as coisas <strong>em</strong> computação andam muito mais rápido), já estando disponíveis gratuitamente<br />

na internet. Estar<strong>em</strong>os, portanto, utilizando um compilador “puro C” e um compilador C++, que é up grade<br />

da linguag<strong>em</strong> C para a programação orientada a objeto, paradigma que não está no escopo deste livro.<br />

1.11 Exercícios propostos<br />

1. Três índios, conduzindo três brancos, precisam atravessar um rio dispondo para tal de um barco cuja<br />

capacidade é de apenas duas pessoas. Por questões de segurança, os índios não quer<strong>em</strong> ficar <strong>em</strong> minoria, <strong>em</strong><br />

nenhum momento e <strong>em</strong> nenhuma das margens. Escreva um algoritmo que oriente os índios para realizar<strong>em</strong> a<br />

travessia nas condições fixadas. (Cabe observar que, usualmente, este exercício é enunciado envolvendo três<br />

jesuítas e três canibais. A alteração feita é uma modesta contribuição para o resgate da verdadeira história<br />

dos índios).<br />

2. O jogo conhecido como Torre de Hanói consiste de três torres chamadas orig<strong>em</strong>, destino e auxiliar<br />

e um conjunto de n discos de diâmetros diferentes, colocados na torre orig<strong>em</strong> na ord<strong>em</strong> decrescente dos seus<br />

diâmetros. O objetivo do jogo é, movendo um único disco de cada vez e não podendo colocar um disco sobre<br />

outro de diâmetro menor, transportar todos os discos para torre destino, podendo usar a torre auxiliar como<br />

passag<strong>em</strong> intermediária dos discos. Escreva algoritmos para este jogo nos casos n = 2 e n = 3.<br />

3. Imagine que se disponha de três esferas numeradas 1, 2 e 3 iguais na forma, duas delas com pesos<br />

iguais e diferentes do peso da outra. Escreva um algoritmo que, com duas pesagens numa balança de dois<br />

pratos, determine a esfera de peso diferente e a relação entre seu peso e o peso das esferas de pesos iguais.<br />

4. A média geométrica de n números positivos é a raiz n-ésima do produto destes números. Supondo<br />

que o processador é capaz de calcular raízes n-ésimas, escreva um algoritmo para determinar a média<br />

geométrica de n números dados.<br />

5. Sabendo que o dia 01/01/1900 foi uma segunda-feira, escreva um algoritmo que determine o dia da<br />

s<strong>em</strong>ana correspondente a uma data, posterior a 01/01/1900, dada. Por ex<strong>em</strong>plo, se a data dada for<br />

23/01/1900, o algoritmo deve fornecer como resposta terça-feira.

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!