14.03.2015 Views

ILA - Unisinos

ILA - Unisinos

ILA - Unisinos

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

Aprendendo a Programar Programando numa Linguagem Algorítmica Executável (<strong>ILA</strong>) - Página 14<br />

formulação do tal algoritmo. Entendemos que esta não é a melhor abordagem, visto que o<br />

conhecimento do que o processador pode executar pode ser definidor na elaboração do algoritmo.<br />

Por exemplo: imagine que queiramos elaborar um algoritmo para extrair o algarismo da casa das<br />

unidades de um inteiro dado (apresentaremos posteriormente uma questão bastante prática cuja<br />

solução depende deste algoritmo). Evidentemente, o algoritmo para resolver esta “grande” questão<br />

depende do processador que vai executá-lo. Se o processador for um ser humano que saiba o que é<br />

número inteiro, algarismo e casa das unidades, o algoritmo teria uma única instrução:<br />

1. Forneça o algarismo das unidades do inteiro dado.<br />

Porém, se o processador for um ser humano que saiba o que é número inteiro e algarismo,<br />

mas não saiba o que é casa das unidades, o algoritmo não poderia ser mais esse. Neste caso, para<br />

resolver a questão, o processador deveria conhecer mais alguma coisa, como, por exemplo, ter a<br />

noção de "mais à direita", ficando o algoritmo agora como:<br />

1. Forneça o algarismo "mais à direita" do número dado.<br />

E se o processador é uma máquina e não sabe o que é algarismo, casa das unidades, "mais à<br />

direita", etc.? Nesta hipótese, quem está elaborando o algoritmo deveria conhecer que instruções o<br />

processador é capaz de executar para poder escrever o seu algoritmo. Por exemplo, se a máquina é<br />

capaz de determinar o resto de uma divisão inteira, o algoritmo poderia ser:<br />

1. Chame de n o inteiro dado;<br />

2. Calcule o resto da divisão de n por 10;<br />

3. Forneça este resto como o algarismo pedido.<br />

Algumas das questões anteriores são importantes para se desenvolver o raciocínio, mas não é<br />

este tipo de questão que se pretende discutir ao longo deste livro. Estamos interessados em<br />

algoritmos para:<br />

1. Resolver problemas matemáticos, como algoritmos para determinar a média aritmética de<br />

vários números dados, determinar as raízes de uma equação do segundo grau, encontrar o máximo<br />

divisor comum de dois números dados, totalizar as colunas de uma tabela, etc.<br />

2. Resolver questões genéricas, como algoritmos para colocar em ordem alfabética uma<br />

relação de nomes de pessoas, atualizar o saldo de uma conta bancária na qual se fez um depósito,<br />

corrigir provas de um teste de múltipla escolha, cadastrar um novo usuário de uma locadora, etc..<br />

Na linguagem natural, o algoritmo para o cálculo da média pode ser escrito de forma muito<br />

simples:<br />

1. Determine a quantidade de números;<br />

2. Some os números dados;<br />

3. Divida esta soma pela quantidade de números.<br />

Qualquer pessoa que saiba contar, somar e dividir números é capaz de executar este algoritmo<br />

dispondo apenas de lápis e papel. A questão que se põe é: e se a relação contiver 13.426 números? A<br />

tal pessoa é capaz de executar, porém, quanto tempo levará para fazê-lo?<br />

Um outro aspecto a ser observado é que nem sempre a linguagem natural é eficiente para que<br />

as instruções sejam escritas. Nessa linguagem o algoritmo para determinação das raízes de uma<br />

equação do segundo grau teria uma instrução difícil de escrever e difícil de compreender como:<br />

n. Subtraia do quadrado do segundo coeficiente o produto do número quatro pelo produto dos<br />

dois outros coeficientes.<br />

Isto pode ser parcialmente resolvido utilizando-se uma linguagem próxima da linguagem<br />

matemática que já foi utilizada em exemplos da seção anterior. No caso da equação do segundo<br />

grau teríamos o seguinte algoritmo, que nos é ensinado nas últimas séries do ensino fundamental:<br />

1. Chame de a, b e c os coeficientes da equação.

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

Saved successfully!

Ooh no, something went wrong!