Baixe o app para aproveitar ainda mais
Prévia do material em texto
1 Professores: Dante Corbucci Filho Alexandre Plastino Fundamentos de Programação 2 Fundamentos de Programação Livro Texto: "Pascal e Técnicas de Programação" Eber Assis Schmitz e Antônio Anibal de Souza Teles LTC editora 3 Fundamentos de Programação Objetivo: Capacitar o aluno no uso de uma linguagem de programação (no caso, Pascal) para implementar, executar e testar as diferentes soluções concebidas para resolver um problema. 4 Fundamentos de Programação Ao final da disciplina: O aluno deverá estar apto a implementar, testar, analisar e documentar programas de computador em uma linguagem imperativa. 5 Ementa: → Concepção e construção de programas → Comandos básicos → atribuição, leitura e escrita → Estruturas de controle → seqüência, seleção e repetição → Recursividade → Representação de dados → vetores, matrizes, registros, conjuntos e arquivos → Procedimentos, funções e passagem de parâmetro → Uso de ponteiros → Alocação dinâmica de memória → Noções de complexidade de algoritmo → Prática em laboratório 6 Aula 1 Professores: Dante Corbucci Filho Alexandre Plastino Conteúdo: - Introdução - Comandos Básicos - Comando de Atribuição - Comandos de Leitura - read, readln - Comandos de Escrita - write, writeln 7 Introdução Algoritmo [Guim 94] "Descrição de um padrão de comportamento, especificado em termos de um conjunto bem definido e finito de ações primitivas que podem ser executadas." Programa = Algoritmo + Estruturas de Dados 8 Introdução Programação Estruturada [Guim 94] Metodologia de projeto de programas que visa: 1. Facilitar o desenvolvimento dos programas; 2. Facilitar a leitura (entendimento) dos programas; 3. Permitir a validação a priori dos programas; 4. Facilitar a manutenção e modificação dos programas. 9 Introdução Ciclo de Vida do Software [Koff 94] 1. Especificar os requisitos do problema • Preparar uma especificação completa e não ambígua. Problema 1.Especificar 2.Analisar 3.Projetar 4.Implementar 5.Testar e Validar 6.Manter e Atualizar Solução 10 Introdução Ciclo de Vida do Software [Koff 94] 2. Analisar o problema • Entender o problema, • Avaliar soluções alternativas, • Escolher a solução mais adequada. Problema 1.Especificar 2.Analisar 3.Projetar 4.Implementar 5.Testar e Validar 6.Manter e Atualizar Solução 11 Introdução Ciclo de Vida do Software [Koff 94] 3. Projetar o programa para solucionar o problema • Realizar um projeto top-down do sistema, • Para cada módulo, identificar as principais estruturas de dados e procedimentos e funções associados, • Desenvolver os algoritmos e estruturas de dados dos procedimentos e funções. Problema 1.Especificar 2.Analisar 3.Projetar 4.Implementar 5.Testar e Validar 6.Manter e Atualizar Solução 12 Introdução Ciclo de Vida do Software [Koff 94] 4. Implementar o projeto • Codificar a solução, • Corrigir erros de codificação. Problema 1.Especificar 2.Analisar 3.Projetar 4.Implementar 5.Testar e Validar 6.Manter e Atualizar Solução 13 Introdução Ciclo de Vida do Software [Koff 94] 5. Testar e validar o programa • Testar o código e validá-lo, se correto. Problema 1.Especificar 2.Analisar 3.Projetar 4.Implementar 5.Testar e Validar 6.Manter e Atualizar Solução 14 Introdução Ciclo de Vida do Software [Koff 94] 6. Manter e atualizar o problema • Executar o sistema, • Avaliar seu desempenho, • Remover novos erros identificados, assim que detectados, • Realizar modificações de forma a manter o sistema atualizado, • Validar as modificações. Problema 1.Especificar 2.Analisar 3.Projetar 4.Implementar 5.Testar e Validar 6.Manter e Atualizar Solução 15 Comando de Atribuição Em um comando de atribuição, uma variável recebe o resultado de uma expressão. Saldo := Deposito - Saque variável expressão 16 Comando de Atribuição Diagrama sintático: Expressão:=Variável 17 Comando de Atribuição Outros Exemplos: Ind := 5 Preco := 10 * Quantidade Total := Total + Preco 18 Expressão Uma expressão especifica o cálculo de um valor. É definida por operandos e operadores. Deposito - Saque operador operando operando 19 Operandos Operandos podem ser constantes, variáveis ou resultados de funções. ( A + 10 ) * Maior(X,Y) funçãovariável constante 20 Operadores Operadores podem ser unários ou binários, dependendo se admitem um ou dois operandos, respectivamente. ( - A + 10 ) * Maior(X,Y) operadores binários operador unário 21 Operadores Unários → operador numérico positivo ("+") operando deve ser numérico → operador numérico negativo ("-") operando deve ser numérico → operador lógico negação ("not") operando deve ser booleano + 5.75 - A not fim constante real variável numérica variável booleana 22 Operadores Binários Aritméticos operadores aditivos operadores multiplicativos soma ("+") subtração ("-") produto (" ") divisão real ("/") divisão inteira ("div") resto da divisão inteira ("mod") * ( 5.75 + ( A mod B ) - 7 ) / 8.1 23 Operadores Binários Lógicos disjunção ou soma lógica ("or") conjunção ou produto lógico ("and") operador multiplicativo ( P or Q ) and R operador aditivo 24 Operadores Binários Relacionais igual ("=") diferente ("<>") maior que (">") menor que ("<") maior ou igual (">=") menor ou igual ("<=") pertence a um conjunto ("in") O resultado de uma operação relacional é um valor booleano. (2 + 2) = 5 é Falso! A = 5 B <= 6 + C X <> Y 25 Precedência dos Operadores Operadores unários têm precedência maior do que os binários. A and not B equivale a A and (not B) 26 Precedência dos Operadores 5.75 + A mod B - 7 / 8.1 equivale a 5.75 + (A mod B) - (7 / 8.1) Operadores multiplicativos (" ", "/", "mod", "div", "and") têm precedência maior do que os operadores aditivos ("+", "-", "or") e estes têm precedência maior do que os relacionais. * 27 Precedência dos Operadores Entre operadores de mesma classe, o que ocorre à esquerda tem maior precedência. 5 * A mod B / 8.1 equivale a ((5 * A) mod B) / 8.1 28 Comandos de Entrada e Saída Arquivo (ou dispositivo) de entrada padrão: input • em geral, associado ao teclado Arquivo (ou dispositivo) de saída padrão: output • em geral, associado ao terminal de vídeo read(<arquivo-entrada>, <parâmetros>) readln(<arquivo-entrada>, <parâmetros>) write(<arquivo-saída>, <parâmetros>) writeln(<arquivo-saída>, <parâmetros>) 29 Comando de leitura read O comando read lê valores do arquivo de entrada, armazenando-os em variáveis do programa. O comando read acima lê dois valores do teclado, separados por brancos, e os armazena nas variáveis Valor1 e Valor2, nesta ordem, após digitada a tecla <enter>. Os valores de entrada e as variáveis onde estes serão armazenados podem ser do tipo inteiro, real, caracter ou cadeia de caracteres. read(input, Valor1, Valor2) 30 Comando de leitura read Considere o seguinte comando read. Considere ainda osseguintes valores digitados no teclado. Após a execução do comando read, as variáveis A, B e C terão os valores 123,’ x’ e 45.6; respectivamente. 123 x 45.6 <enter> read(input, A, B, C) 31 Comando de leitura read Diagrama sintático: ( Variável Arquivo de Entradaread , ) 32 Comando de leitura readln O comando readln é uma variante do comando read que, além de ler os valores do arquivo de entrada, pula para a linha seguinte deste arquivo. O comando readln acima considera o arquivo de entrada padrão. Desta forma, lê dois valores do teclado, armazenando-os nas variáveis Valor1 e Valor2, após ser digitada a tecla <enter>, e salta para a linha seguinte. readln(input, Valor1, Valor2) 33 Comando de leitura readln Considere os seguintes comandos readln. Considere ainda os seguintes valores digitados no teclado. Após a execução dos comandos readln, as variáveis A e B terão os valores 123 e 45.6. 123 <enter> 45.6 <enter> readln(input, A) readln(input, B) 34 Comando de leitura readln Diagrama sintático: ( Variável Arquivo de Entrada , ) readln 35 Comando de escrita write O comando write escreve no arquivo de saída valores definidos por expressões. O comando write acima escreve no terminal de vídeo a constante alfanumérica ’custo = ’ seguida do valor resultante da expressão C + 20. Os valores resultantes das expressões devem ser do tipo inteiro, real, cadeia de caracteres ou booleano. write(output, ’custo = ’, C + 20) 36 Comando de escrita write Considere as variáveis A, B e C contendo os valores 432, 45.6 e false, e o comando write abaixo. Após a execução do comando write, os seguintes valores serão escritos no terminal de vídeo. write(output, 123,’ ’, A, B:5:1,’ ’ , C,’ ’ , ’x’) 123 432 45.6 false x 37 Comando de escrita write Diagrama sintático: ( , ) write Arquivo de Saída Expressão 38 Comando de escrita writeln O comando writeln é uma variante do comando write Que escreve os valores no arquivo de saída e,em seguida, passa para a linha seguinte do arquivo. O comando writeln acima considera o arquivo de Saída padrão. Desta forma, escreve no terminal de vídeo a constante alfanumérica ’custo = ’, o valor resultante da expressão C + 20 e salta para a linha seguinte. writeln (output, ’custo = ’, C + 20) 39 Comando de escrita writeln Considere as variáveis A e B contendo os valores 432 e 45.6, e os comandos writeln abaixo. Após a execução dos comandos writeln, os seguintes valores serão escritos no terminal de vídeo. writeln (output, 1, ’ ’ , A) writeln (output, 2, ’ ’ , B:4:1) 1 432 2 45.6 40 Comando de escrita writeln Diagrama sintático: ( , ) Arquivo de Saída Expressão writeln 41 Formatação na saída dos resultados Os comandos write e writeln permitem a especificação do formato de saída de cada expressão a ser impressa. Após a especificação de cada expressão, deverá aparecer o separador ":" e um valor inteiro indicando o tamanho do campo, em número de caracteres, dentro do qual a expressão deverá ser impressa. 42 Formatação na saída dos resultados O valor a ser impresso é ajustado à direita e espaços extras são preenchidos com brancos. Resultado (supondo C=2005): valor = 2005 10 posições 5 posições write (output, ’valor = ’:10, C:5) 43 Formatação na saída dos resultados Na formatação de expressões do tipo real, um segundo parâmetro pode ser especificado, que indica o tamanho da parte fracionária. Caso não seja especificado, o número real será impresso na notação de ponto flutuante. write(output, 123.45:6:2) write(output, 123.45:8) Resultado: 123.45 Resultado: 1.23e+02 44 Comando de escrita write(ln) com formatação ( Arquivo de Saídawrite , )Expressão : Expressão : Expressão 45 Aula 1 Professores: Dante Corbucci Filho Alexandre Plastino Conteúdo apresentado: - Introdução - Comandos Básicos - Comando de Atribuição - Comandos de Leitura - read, readln - Comandos de Escrita - write, writeln 46 Aula 1 Professores: Dante Corbucci Filho Alexandre Plastino Referências Bibliográficas: [Guim 94] Guimarães & Lages Algortimos e Estruturas de Dados LTC Editora, 1994 [Koff 94] Koffman, Elliot B. Turbo Pascal 7.0 Addison-Wesley, 1994
Compartilhar