Programar Em Pascal

74,497 views
74,047 views

Published on

Programa de Bases de Programação do 10º ano; Curso Tecnológico de Informática

Published in: Technology
2 Comments
13 Likes
Statistics
Notes
  • ainda vou explorar mais achei algo interessante logo quando fiz o skiming
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
  • interessante
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
No Downloads
Views
Total views
74,497
On SlideShare
0
From Embeds
0
Number of Embeds
14,934
Actions
Shares
0
Downloads
1,034
Comments
2
Likes
13
Embeds 0
No embeds

No notes for slide

Programar Em Pascal

  1. 1. Aprendendo a Programar em Pascal Resumo da matéria dada no 10º ano Bases de Programação
  2. 2. <ul><li>Nesta apresentação dar-lhe-ei a conhecer o maravilhoso mundo da programação... </li></ul><ul><li>Programar consiste em dar uma sequência de comandos ao computador para resolver um determinado problema. </li></ul><ul><li>Em primeiro lugar, precisamos de aprender a definir os passos que nos levam á solução do problema. </li></ul><ul><li>Este é o processo mais importante da programação, que exige uma certa habilidade em entender o problema e propor uma solução criativa, simples e correcta. </li></ul><ul><li>Esta sequência de passos visando a solução de um determinado problema é denominado de algoritmo. </li></ul>
  3. 3. O que é um algoritmo? <ul><li>Um algoritmo é uma sequência de passos para realizar um tarefa ou resolver um problema. </li></ul><ul><li>No dia a dia utilizamos algoritmos para realizar as nossas actividades, definindo a sequência de acções que devemos fazer para atingir um objectivo. </li></ul><ul><li>Essas sequências de passos geralmente são guardadas na nossa memória. </li></ul><ul><li>Por exemplo, quando marcamos um encontro com alguém, a sequência de procedimentos para esta situação será: </li></ul><ul><li>tomar banho </li></ul><ul><li>vestir roupa bonita </li></ul><ul><li>levar guarda-chuva se estiver mau tempo </li></ul><ul><li>Apanhar o autocarro </li></ul><ul><li>... </li></ul>
  4. 4. <ul><li>Esta sequência de procedimentos não anotamos no papel, por que são coisas simples ou que fazemos com bastante frequência. </li></ul><ul><li>Porém, para resolver problemas mais complexos, precisamos de apontar no papel os passos, principalmente quando queremos escrever um programa. </li></ul><ul><li>Existem diferentes formas de escrever um algoritmo. </li></ul><ul><li>Neste curso vamos escrever os algoritmos numa linguagem intermediária entre a linguagem falada e a linguagem de programação. </li></ul><ul><li>Iremos usar termos simples, mas também claros e objectivos. </li></ul><ul><li>Para perceber melhor o que lhe falei nesta introdução vamos começar por resolver um simples problema. </li></ul>
  5. 5. Exemplo de um problema: <ul><li>Na disciplina de matemática tivemos três provas e as notas foram as seguintes: </li></ul><ul><li>N1 = 5.5 N2 = 7.0 N3 = 4.5 </li></ul><ul><li>Gostaríamos de saber qual foi a média das três notas. Qual seria a sequência de operações que o computador precisa para fazer este simples cálculo? </li></ul><ul><li>Solução: </li></ul><ul><li>Para calcular a média, em primeiro lugar precisamos informar ao computador quais são os valores das notas. Depois, pedimos para ele somar as notas e dividir por 3. </li></ul><ul><li>O resultado deve ser guardado num determinado lugar, para depois mostrar no ecrã do computador. </li></ul><ul><li>Esta sequência poderá ser escrita num algoritmo da seguinte forma: </li></ul><ul><li> 1. Atribuir os valores N1 = 5.5 ; N2 = 7.0 ; N3 = 4.5. </li></ul><ul><li> 2. Calcular a soma: S = N1 + N2 + N3 3. Calcular a média: M = S/3 4. Mostrar o resultado M </li></ul>
  6. 6. <ul><li>Para fazer os cálculos, o computador precisa guardar os dados na memória. </li></ul><ul><li>Para entender melhor como isso funciona, vamos imaginar que esses lugares são caixas vazias. Portanto N1 , N2 e N3 são caixas onde vamos guardar o valor das notas. </li></ul><ul><li>Por exemplo, quando fazemos N1 = 5.5 no algoritmo, estamos a informar ao computador que deve guardar o valor 5.5 na caixa N1 . O que acontece quando escrevemos: </li></ul><ul><li>S = N1 + N2 + N3 </li></ul><ul><li>O computador fará a soma dos valores que estão nas caixa N1 , N2 e N3 e o resultado será guardado na caixa S . A caixa M será utilizada para guardar o valor de S dividido por 3 . Finalmente quando quisermos ver o resultado do cálculo, pedimos ao computador para mostrar o conteúdo da caixa M . </li></ul><ul><li>Podemos alterar o conteúdo das caixas utilizando o símbolo = , nesse caso o valor anterior da caixa será substituído pelo último valor atribuído. </li></ul><ul><li>Agora imaginemos que temos poucas caixas vazias e para economizar vamos pedir ao computador que guarde o resultado da média no mesmo lugar onde estava a soma, já que a soma não será mais usada. Para isso o comando seria o seguinte: </li></ul><ul><li>S = S/3 </li></ul><ul><li>Neste caso, o computador vai dividir o conteúdo da caixa S por 3 e o resultado vai guardar na mesma caixa S , apagando o resultado anterior. Este tipo de procedimento podemos fazer quando não precisarmos dos valores anteriores. </li></ul><ul><li>Para colocar o nome das caixas nos algoritmos podemos utilizar qualquer letra ou palavra, mas é recomendável usar palavras ou letras associadas ao conteúdo. Por exemplo, para guardar a média pudemos colocar a letra M , poderíamos usar também: Media, med, MEDIA , etc. </li></ul>
  7. 7. Como converter um algoritmo para a linguagem Pascal? <ul><li>Vamos ver primeiro como funciona a estrutura de um programa em Pascal: </li></ul>A estrutura do programa em Pascal consta de dois componentes: cabeça e corpo. Na primeira parte (var) são declarados os tipos e variáveis. Mais á frente explicarei o significado desta parte. Na segunda parte trata-se do corpo do programa. Como podemos observar o corpo do programa começa com a palavra Begin e acaba com End. As palavras Program, Begin e End são palavras da linguagem Pascal e sempre estarão presentes em todos os programas. Agora vamos passar o nosso algoritmo da média para um programa em Pascal .
  8. 8. Criar um programa… <ul><li>Vamos passar o algoritmo que se segue para a linguagem Pascal: </li></ul><ul><li>Atribuir os valores    N1 = 5.5 ; N2 = 7.0 ; N3 = 4.5 </li></ul><ul><li>Calcular a soma:     S = N1 + N2 + N3 </li></ul><ul><li>Calcular a média:     M = S/3 </li></ul><ul><li>Mostrar o resultado     M </li></ul><ul><li>(Só para lembrar: N1, N2 e N3 contém as notas, S guarda o resultado da soma e M guarda o resultado da média. ) </li></ul>Vemos que o algoritmo inteiro passou para o corpo do programa. Vemos também que na cabeça aparece a declaração de N1, N2, N3, S e M. O corpo do programa consta geralmente de três partes principais: Entrada de dados, processamento ou cálculo e saída dos resultados.
  9. 9. <ul><li>Geralmente, o computador trabalha bastante com números reais e inteiros, mas também pode guardar outros tipos de dados , como por exemplo, caracteres (um caractere é uma letra, símbolo ou dígito), da seguinte forma: </li></ul><ul><li>Var </li></ul><ul><li>letra : char </li></ul><ul><li>A linguagem Pascal tem algumas regras que deverá considerar quando quiser criar programas… </li></ul><ul><li>Todos os comandos têm um   ;   no final (com algumas excepções) </li></ul><ul><li>Para alterar o conteúdo de uma caixa ou variável utilizamos um := e não um = como nos algoritmos </li></ul><ul><li>No Pascal não existe diferença entre letras maiúsculas e minúsculas, portanto pode escrever os comandos e os nomes de variáveis com qualquer letra. </li></ul><ul><li>Os comentários dentro do programa não são considerados pelo computador, porém é recomendável escrever os comentários explicando o que faz cada linha ou bloco do programa. Isso o ajudará, por exemplo, a entender o que faz o programa quando quiser voltar a usá-lo após algum tempo. Para escrever comentários dentro do programa use // seguido do comentário que deseja introduzir. </li></ul>
  10. 10. <ul><li>Vamos supor agora que gostaria que o computador o informasse de acordo com o resultado da média se foi aprovado ou não na disciplina de matemática. </li></ul><ul><li>Para tal, elaborava o seguinte algoritmo: </li></ul><ul><li>1. Atribuir os valores a N1, N2, N3 </li></ul><ul><li>2. Calcular a soma: S = N1 + N2 + N3 </li></ul><ul><li>3. Calcular a média: M = S/3 </li></ul><ul><li>4. Se a média for maior ou igual a 5: informar aprovado </li></ul><ul><li>5. Caso contrário: informar reprovado </li></ul>O programa correspondente a este algoritmo seria: Analisando o programa observamos que uma condição é traduzida em Pascal usando os comandos IF ... ELSE e a estrutura geral é a seguinte: IF condição THEN fazer tarefa 1 ELSE fazer tarefa 2 ;
  11. 11. <ul><li>Que acontece se existir mais de um comando a ser executado para cada condição? </li></ul><ul><li>Para o computador saber que comandos ou tarefas fazem parte de uma condição, vamos usar blocos. </li></ul><ul><li>Um bloco é uma sequência de comandos que começa com BEGIN e termina com END . </li></ul><ul><li>Portanto a estrutura de IF usando bloco seria: </li></ul><ul><li>IF condição THEN </li></ul><ul><li>BEGIN </li></ul><ul><li>comando1; </li></ul><ul><li>comando2; </li></ul><ul><li> comando3; </li></ul><ul><li>...... </li></ul><ul><li>END; </li></ul><ul><li>(Da mesma forma para o ELSE também podemos usar o bloco quando for necessário. ) </li></ul>
  12. 12. <ul><li>Já vimos alguns tipos de dados que o computador utiliza, como Integer para número inteiros, Real para números reais e Char para caracteres. Vamos agora aprender um novo tipo que é o boolean . </li></ul><ul><li>O computador utiliza variáveis do tipo boolean para saber o resultado de uma condição ou comparação. Portanto uma variável do tipo boolean pode ter apenas dois valores: FALSO ou VERDADEIRO, em Pascal isso significa, FALSE ou TRUE. Vejamos um exemplo de como usar as variáveis do tipo boolean. </li></ul><ul><li>No exemplo anterior, suponha que precisamos de guardar numa variável o resultado (se estamos aprovados ou não). </li></ul>Logo, o programa modificado seria:
  13. 13. <ul><li>Para entender melhor a estrutura IF veja como o seguinte problema será resolvido em Pascal… </li></ul>Faça um programa que dados três números, mostre qual é o maior deles: O Pascal permite escrever muitos comandos na mesma linha, porem é recomendado que seja escrito apenas um comando por linha para facilitar o entendimento do programa e apenas em casos de comandos simples (por exemplo, atribuições) usar mais de um comando por linha. Apenas com um comando Writeln podemos mostrar vários resultados. Neste caso as variáveis devem ser separadas por um  ,  . Também podemos incluir textos dentro do Writeln usando duas aspas ( ' ), como mostra o seguinte exemplo: Writeln( ' o valor de a é : ' , a, ' e o valor de b é: ' , b) Não coloque o ; no comando anterior a ELSE, nem no comando END
  14. 14. <ul><li>Uma das grandes vantagens da programação é que podemos agrupar cálculos repetidos e informar ao computador através da linguagem de programação que trechos deve repetir, quantas vezes ou em que condições. </li></ul><ul><li>Para entender melhor vamos resolver o seguinte problema: </li></ul><ul><li>Calcular e mostrar o quadrado de todos os número inteiros de 1 até 100… </li></ul><ul><li>No Pascal utilizamos Comando WHILE ... DO para indicar ao computador que vamos repetir um trecho do programa enquanto uma condição for satisfeita. </li></ul><ul><li>Vejamos como fica na linguagem Pascal… </li></ul>Observando o programa vemos que além do While...Do aparecem outras duas palavras reservadas da linguagem que já conhecemos: o Begin...End . Neste caso, estas palavras são utilizadas para informar ao computador onde começa e acaba o trecho do programa que precisa de ser repetido. O formato geral do comando WHILE é o seguinte: WHILE condição DO BEGIN blocos de comandos END;
  15. 15. <ul><li>Agora vamos aprender uma outra forma de entrada de dados bastante utilizada. É muito trabalhoso ter que ir ao programa e mudar os valores dos dados cada vez que desejamos fazer cálculos com novos dados. </li></ul><ul><li>Por exemplo, no programa da média temos que alterar os valores de N1, N2 e N3 se quisermos calcular a média das notas de outro aluno. Ficaria mais fácil se pudéssemos informar isso durante a execução do programa. </li></ul><ul><li>Para fazer isso em Pascal existe o comando chamado Readln . </li></ul><ul><li>Como seria então o programa da média se quiséssemos introduzir nós mesmos os valores das notas? </li></ul>Os comandos IF e While podem ter mais que uma condição, unidos por OR ou AND . Por exemplo: WHILE (N >0 AND N <100) DO BEGIN ...... END; Isso significa que o bloco dentro do While será repetido enquanto o N for maior que 0 e menor que 100. No mesmo comando Readln podemos ler mais de um dado, por exemplo a leitura de dados no programa da media pode ser escrito ainda como: Readln(N1,N2,N3);
  16. 16. <ul><li>Como calcular o resto de uma divisão? </li></ul><ul><li>No pascal existe um operador chamado mod , que calcula o resto de uma divisão. Por exemplo: </li></ul><ul><li>10 mod 3 é igual a 1 </li></ul><ul><li>O operador mod é util para saber se um número é divisível por outro. </li></ul><ul><li>Por exemplo para saber se 50 é divisivel por 4, calculamos o 50 mod 4. Como o resultado é igual a 2, concluímos que 50 não é divisivel por 4. </li></ul><ul><li>Imagine agora que deseja criar um programa em que introduza determinado número e quer que o computador calcule de forma a concluir se o número introduzido é ou não par. </li></ul>Como pode ver neste exemplo, aparece um novo comando que ainda não tínhamos visto. Uses crt. Este comando permite fazer uma pausa de modo a permitir ao utilizador visualizar resultados no fim do programa. O “Delay” deverá ficar após o resultado que quererá visualizar como mostra o exemplo. 1000 = 1 segundo de espera 10000= 10 segundos… 100000= 100 segundos…etc
  17. 17. <ul><li>Como fazer para armazenar um conjunto de dados do mesmo tipo? </li></ul><ul><li>Em Pascal, para declarar uma variável que armazena um conjunto de dados do mesmo tipo é utilizada a palavra array . Vamos supor que desejamos declarar uma variável para armazenar o nome de uma pessoa. Sabemos que um nome é constituído por caracteres, portanto a declaração seria: </li></ul><ul><li>Var nome: array [1..100] of char </li></ul><ul><li>Esta declaração informa ao computador para reservar 100 caixinhas do tipo char para armazenar o nome de uma pessoa. Na declaração entre parênteses é colocado o número máximo de elementos do array, neste caso, como não sabemos antecipadamente qual vai ser o tamanho do nome, colocamos um número grande. </li></ul><ul><li>Vamos resolver um problema aplicando arrays. </li></ul><ul><li>Dado o nome de uma pessoa, queremos determinar o número de vogais contidos no nome. </li></ul>Para determinar o número de vogais utilizámos um contador. A cada passo fomos comparando os caracteres um por um e quando achámos uma vogal acrescentamos 1 ao contador. Para aceder a cada caractere dentro do array, precisamos também de um contador.
  18. 18. <ul><li>Temos visto que em muitos casos conhecemos o número de repetições de um bloco de comandos, para tal temos usado o comando while juntamente com um contador. </li></ul><ul><li>Por exemplo, no programa anterior o bloco dentro do comando while é repitido enquanto o indice i é menor ou igual a 100 e em cada passo acrescentamos o valor do índice. </li></ul><ul><li>Para estas situações em Pascal existe o comando FOR que facilita bastante… </li></ul><ul><li>O formato do comando é o seguinte: </li></ul><ul><li>FOR valor inicial TO valor final DO </li></ul><ul><li>BEGIN </li></ul><ul><li>comandos </li></ul><ul><li>END </li></ul>Este comando pode ser utilizado somente se i for declarado como número inteiro e se conhecermos os seus valores, inicial e final. O comando for é bastante usado principalmente para aceder aos elementos de um vector. Vejamos como seria o programa anterior usando o comando FOR:
  19. 19. <ul><li>Uma matriz é um array de duas dimensões. Uma matriz é útil por exemplo para armazenar tabelas, fazer cálculos matemáticos, fazer desenhos, resolver problemas, etc. </li></ul><ul><li>Imagine que desejamos guardar no computador a lista dos alunos com suas respectivas notas em todas as disciplinas durante o ano. </li></ul><ul><li>Por exemplo a seguinte tabela mostra a lista de 10 alunos e as notas em 8 disciplinas. </li></ul>Gostaríamos fazer um programa para armazenar essa tabela no computador e depois poder calcular, por exemplo, a média de todas as notas de todos os alunos. Inclusive para saber o desempenho da turma inteira poderíamos calcular a media das medias. Em Pascal, uma matriz é definida em forma muito parecida com um vector: Var notas : array [1..10,1..8] of real ; O número 10 indica o número máximo de linhas da matriz e o número 8 indica o número máximo de colunas. Se não sabemos com antecedência qual será o tamanho da nossa matriz podemos reservar um número grande como fizemos com os vectores. Para manter a informação completa da tabela no computador, poderíamos armazenar também os nomes dos alunos num vector de string e as médias dos alunos num vector de números reais. Veremos a seguir como trabalhar com matrizes, analisando o programa que lê as notas dos alunos, calcula as medias, guarda num vector e imprime os resultados no ecrã do computador.
  20. 20. Clique aqui para ver o programa em pascal Para aceder aos elementos de uma matriz utilizamos dois índices: O primeiro para definir a linha e o segundo para definir a coluna. Os vectores e matrizes são bastante usados em cálculos matemáticos. No programa observamos que precisamos sempre de dois lados para percorrer todos os elementos de uma matriz. Quando um lado está dentro de outro lado, estes são chamados de lados aninhados . É muito comum encontrar em programas lados aninhamos, especialmente quando se trabalha com vectores e matrizes.
  21. 21. <ul><li>Pascal é uma linguagem estruturada, já que permite ordenar os blocos de comandos de forma a serem executados em forma sequencial e sem saltos longos. </li></ul><ul><li>É útil para encontrar falhas no programa (variáveis não definidas, falta de comandos fechando blocos, etc.), acompanhar sua execução e entender a funcionalidade do programa. </li></ul><ul><li>Outro factor importante para ter um programa mais fácil de visualizar é a indentação. </li></ul><ul><li>Já deve ter notado que no programa em Pascal os comandos não começam todos na mesma coluna. </li></ul><ul><li>Por exemplo, todas as linhas depois do comando Begin têm um espaço maior. Este tipo de ordenação é chamada de indentação . </li></ul><ul><li>Isso significa que pode começar cada linha de comando deixando espaços vazios no começo. </li></ul><ul><li>Estes espaços vazios são ignorados pelo computador e o resultado não é alterado, porém o seu programa fica mais fácil de ler e entender. </li></ul><ul><li>Sempre que for possível tente estruturar melhor seu programa. Num programa correctamente indentado fica mais fácil entender o que o programa faz, determinando os blocos de condições e lados. </li></ul>Sem indentação Com indentação
  22. 22. Resumindo… <ul><li>Write (escrever) : Imprime no ecrã determinado texto editado pelo programador. </li></ul><ul><li>Read (ler) : Memoriza determinado dado introduzido pelo utilizador. </li></ul><ul><li>(Ambos os comandos podem conter “ln” no final que significa mudança de linha. Exemplo: writeln, readln.) </li></ul><ul><li>If (se) : Utiliza uma condição. SE a condição for verdadeira então executa um conjunto de instruções, senão executa outro conjunto de instruções. </li></ul><ul><li>While (enquanto) : Permite executar um conjunto de instruções enquanto uma condição mantiver o valor lógico verdadeiro. Quando o valor lógico estiver falso, termina o ciclo e prossegue com a execução do programa. </li></ul><ul><li>For (para) : Repte um bloco de instruções durante um determinado número de vezes. </li></ul><ul><li>Vector (Array unidimensional) : Memoriza determinados dados do mesmo tipo. (char, integer, etc…). Na hora de memorizar dados, apenas contém uma linha com várias colunas. </li></ul><ul><li>Matriz (Array multidimensional) : Memoriza determinados dados, podendo ser de diferentes tipos ou não. Na hora de memorizar dados, contém várias linhas e várias colunas. </li></ul>
  23. 23. Resumindo <ul><li>Uses crt : Permite pausar o programa de modo a permitir ao utilizador visualizar o ecrã. </li></ul><ul><li>Integer : Tipo de variável usado para números inteiros. </li></ul><ul><li>Real : Tipo de variável usado para números reais (inteiros ou decimais). </li></ul><ul><li>Boolean : Tipo de variável que apenas pode conter dois valores: True (verdadeiro) ou False (falso). </li></ul><ul><li>String : Tipo de variável que apenas contem um caractere (letra) ou um conjunto de caracteres (palavra) </li></ul>
  24. 24. Trabalho Realizado por… <ul><li>Pedro Rocha </li></ul>Nº 5 10º C Neste trabalho apenas consta matéria dada ao longo do ano lectivo de 2007/2008 de Bases de Programação.

×