1 Introdução a Ciência da Computação Esse manual foi feito no intuito de relembrar o que vimos em sala há 3 meses atrás, antes do início da greve das universidades federais. A respeito desse assunto (greve) apenas quero deixar um trecho de um filme para reflexão: Alguma vez parou para olhar, maravilhado com essa beleza e genialidade? Milhões de pessoas vivendo suas vidas, alienadas... (Agente Smith Matrix) Agora, a respeito do assunto Algoritmo, eis um compacto tutorial de como fazer um algoritmo consideravelmente simples usando o programa PascalZim. Um compacto tutorial A estrutura básica de um algoritmo feito no PascalZim é: nome do algoritmo; variáveis; comandos. O nome do algoritmo e o nome das variáveis usadas devem ser pequenos, sem acentuação e não podem começar com um número. As variáveis com as quais trabalhamos são string, integer e real, as quais armazenam, respectivamente, valores referentes a caracteres (frases, expressões, letras), números inteiros e números reais. É necessário definir toda e qualquer variável que será usada no programa para que ele funcione. O comando writeln cria uma frase, enquanto o readln lê uma variável. Veja um exemplo de algoritmo envolvendo tudo o que foi dito acima. Confira a transcrição abaixo:
2 Program Conversa ; Var idade:integer; altura:real; resposta:string; Begin writeln( Qual é o seu nome? ); readln(resposta); writeln( Quantos anos voc^e tem? ); readln(idade); writeln( Qual é a sua altura em metros? ); readln(altura); writeln( Ah sim,resposta,. Voc^e realmente parece ter,idade, anos e,altura, m de altura. ); End. Tal programa, quando compilado, roda da seguinte forma: Essa grande quantidade de zeros a direita do ponto pode ser reduzido se, ao programarmos, colocássemos altura:0:2. Desse modo, apareceriam apenas duas casas decimais.
3 Algo importante a ser observado é que as partes em verde foram escritas pelo programador usando o comando writeln enquanto as partes em branco são dados fornecidos pelo usuário. Esses dados são armazenados nas respectivas variáveis usadas juntamente com o comando readln. Para evitar erros é necessário que tanto o programador quanto o usuário usem o bom senso. Ao responder a pergunta Quantos anos voc^e tem?, por exemplo, é de bom senso que o usuário evite responder 12.576 ou então -9. Caso um número real não inteiro seja fornecido onde o comando readln pede uma variável inteira (integer) o programa travará. E ainda que informe o número inteiro 9 e o programa rode, sabemos que não faria sentido nesse caso pois é uma idade. O mesmo ocorre caso informemos letras onde se pedem números. Há como o programador prevenir esse tipo de erro ao construir o algoritmo, mas por simplificação desta apostila não veremos como fazer isso 1. O bom senso é essencial principalmente ao programarmos. As perguntas feitas no algoritmo devem estar claras o suficiente para que não haja dúvidas no momento em que o usuário trabalhe com o programa. Deixe o algoritmo trabalhar por você Uma das maiores utilidades do algoritmo: Ele faz contas por nós (e bem mais rápido). Sabendo que o comando := significa atribuição e dados valores reais para a e b, para realizar uma conta simples de soma podemos fazer soma:=a+b; Dessa forma a variável soma vai receber o valor de a somado ao valor de b, que devem ter sido previamente lidos pelo programa. Observe o exemplo abaixo envolvendo as quatro operações básicas. 1 Caso alguém se interesse, venha conversar comigo pessoalmente, terei o maior prazer em explicar.
4 Essas operações podem ainda serem realizadas dentro da própria mensagem, isso economiza o uso de variáveis. Veja um algoritmo que roda identicamente ao anterior, mas escrito de forma simplificada. Condicional Vejamos como funciona agora o comando que analisa uma condição: if. Mas primeiro... Pense por um momento: Como é feita a sua média? Escreva à parte uma forma de generalizar uma média com quatro notas, todas com o mesmo peso. Agora, observemos um algoritmo que realiza esse cálculo: Note na linha 7 que a leitura de várias variáveis pode ser feita de uma só vez. Na linha 8, atente especialmente para os parênteses que definem qual é o numerador da expressão. Esquecer de colocar parênteses faria com que o algoritmo entendesse que apenas a quarta nota foi dividida por quatro. Okay, agora vamos tornar o resultado mais personalizado. Perguntaremos o nome do usuário e, tomando a média mínima para passar de ano como 5, informaremos se ele passou ou não de ano. Observe, principalmente, a estrutura da condicional (o if das linhas 14 à 19).
5 Eis as duas possibilidades do programa escrito acima Nesse último algoritmo, que contempla tudo o que vimos até o momento, vamos analisar como ficaria naquela linguagem informal que vimos em sala nas primeiras aulas sobre algoritmo. Programa Media ; Var usuario:string; n1,n2,n3,n4,m:real; Começar escrever( Olá, qual é o seu nome? ); ler(usuario); escrever( Diga,usuario,, quais foram suas quatro notas? ); ler(n1,n2,n3,n4); m:=(n1+n2+n3+n4)/4; se (m>=5) ent~ao começar writeln( Sua média é,m:0:2,,usuario,! Parabéns, voc^e passou. ); terminar sen~ao começar writeln( Mas poxa vida,usuario,... Espero que os,m:0:2, de média e essa reprovaç~ao n~ao te desanime. ); terminar; Terminar. Repetir O repetir também é condicional. O comando repeat... until( ) faz com que o programa repita linhas de comando até que a condição seja satisfeita. Pelo exemplo abaixo, podemos ver um programa que repetirá infinitamente a frase Wake up, Neo... até que o usuário digite ok.
6 Considerações Finais Pode usar a linguagem informal na prova? Pode, mas use a linguagem informal OU a formal, não misture as duas em um mesmo algoritmo. Quando será a prova? A segunda prova será dia 28 de setembro e a prova optativa será dia 05 de outubro. Como será a prova? A prova terá cinco questões, cada uma valendo dois pontos e meio. Será de consulta e em dupla, você pode levar o que quiser para consultar (lembrando que há apostilas na xerox da universidade e no blog 2 ). E como será a Prova Optativa? Será SEM consulta e individual, contemplando todo o conteúdo (números binários e algoritmos). Sugestão: Se quer finalizar sua média com um 10,0 de ICC, busque fazer os exercícios abaixo ainda hoje (21/set) em aula e tire as dúvidas que tiver. 2 http://fernando-cpaq.blogspot.com/
7 Lista de Questões Questão 1. O que é algoritmo? Questão 2. Monte um algoritmo que leia um número e mostre o cubo deste número. Questão 3. Construa um programa que leia os valores dos coeficientes de uma equação de segundo grau e retorne os valores de suas raízes. Questão 4. Faça um programa que leia a idade de uma pessoa e, caso seja menor de 18 anos, mostre uma mensagem dizendo que não pode usar o programa. Questão 5. Estruture um algoritmo de modo que ele calcule a área de um retângulo. Questão 6. Estruture um algoritmo de modo que ele calcule a área de um círculo. Questão 7. Monte um programa que leia o preço gasto para fabricar um saquinho de pipoca, o preço da venda de um saquinho pipoca e retorne o lucro da venda de 100 desses saquinhos. Questão 8. Escreva um algoritmo que leia o preço de uma roupa, seu desconto e retorne o valor da roupa com desconto. Questão 9. Faça um programa que calcule e mostre quantos anos alguém tem usando como dado de entrada a data de nascimento. Questão 10. Em homenagem ao dia da árvore (21 de setembro), construa um algoritmo que escreva alguma frase falando sobre árvores 21 vezes.