Docsity
Docsity

Prepare-se para as provas
Prepare-se para as provas

Estude fácil! Tem muito documento disponível na Docsity


Ganhe pontos para baixar
Ganhe pontos para baixar

Ganhe pontos ajudando outros esrudantes ou compre um plano Premium


Guias e Dicas
Guias e Dicas


Processo de Desenvolvimento de Programas e Linguagem de Programação, Notas de estudo de Mecatrônica

Este documento aborda o processo de desenvolvimento de programas, desde a criação e execução de um programa, passando pela linguagem de programação, sintaxe, semântica, e critérios de qualidade de um programa. Além disso, é apresentado o conceito de linguagem de baixo nível e alto nível, assim como os programas tradutores: montadores, interpretadores e compiladores. Por fim, é feita uma breve introdução à linguagem pascal, com sua sintaxe e exemplos de programa.

Tipologia: Notas de estudo

Antes de 2010

Compartilhado em 24/04/2008

ronan-silva-6
ronan-silva-6 🇧🇷

4 documentos

1 / 30

Toggle sidebar

Esta página não é visível na pré-visualização

Não perca as partes importantes!

bg1
Técnicas de
Programação I
Autor:
Josiane Alves de Sousa
pf3
pf4
pf5
pf8
pf9
pfa
pfd
pfe
pff
pf12
pf13
pf14
pf15
pf16
pf17
pf18
pf19
pf1a
pf1b
pf1c
pf1d
pf1e

Pré-visualização parcial do texto

Baixe Processo de Desenvolvimento de Programas e Linguagem de Programação e outras Notas de estudo em PDF para Mecatrônica, somente na Docsity!

Técnicas de

Programação I

Autor:

Josiane Alves de Sousa

Técnicas de Programação I

fevereiro/

1. Linguagens de Programação:

1.1. Conceito

Organização das formas de se manipular o comportamento físico do computador, através da utilização de termos e sintaxes humanamente representáveis e conversíveis para um sistema eletrônico com representação elétrica.

1.2. Objetivo.

Tem como objetivo a formalização de algoritmos para ter como resultado final um programa fonte, que após se envolver em um processo de interpretação ou compilação se transforma em um programa em que os computadores entendam, ou seja, programa puro de linguagem de máquina.

2. Introdução a Programação :

2.1. Conhecimentos básicos necessários

a) ALGORITMO X PROGRAMA

Algoritmo: é uma seqüência lógica de ações executadas para se resolver uma determinada tarefa. Programa: é a formalização de um algoritmo em uma determinada linguagem de programação, segundo suas regras de sintaxe e semântica, de forma a permitir que o computador possa entender a seqüência de ações.

b) LINGUAGEM DE PROGRAMAÇÃO

No começo para se controlar um computador era preciso muita técnica na configuração de circuitos, pois o computador só “compreende” as instruções em binário, e assim para se converter de forma eficaz a representação do pensamento humano era necessário muito esforço e paciência. Só que, na busca da evolução do processo, concebeu-se formas facilitadoras de se comunicar com as máquinas.

Temos que uma linguagem de programação é um conjunto de símbolos (comandos, identificadores, caracteres ASCII, etc.) e regras de sintaxe que permitem a construção de sentenças que descrevem de forma precisa ações compreensíveis e executáveis para o computador.

LINGUAGEM DE PROGRAMAÇÃO = SÍMBOLOS + REGRAS DE SINTAXE

Uma linguagem de programação é uma notação formal para descrição de algoritmos que serão executados por um computador. Como todas as notações formais, uma linguagem de programação tem dois componentes: Sintaxe e Semântica. A sintaxe consiste em um conjunto de regras formais, que especificam a composição de programas a partir de letras, dígitos, e outros símbolos. Por exemplo, regras de sintaxe podem especificar que cada parêntese aberto em uma expressão aritmética deve corresponder a um parêntese fechado, e que dois comandos quaisquer devem ser separados por um ponto-e-vírgula. As regras de semântica especificam o “significado” de qualquer programa, sintaticamente válido, escrito na linguagem.

c) TIPOS DE LINGUAGENS DE PROGRAMAÇÃO

Existem diversas linguagens de programação, cada uma com suas características específicas e com níveis de complexidade e objetivos diferentes:

Linguagem de Máquina Única compreendida pelo computador. Específica de cada computador.

Linguagens de Baixo Nível Utilizam mnemônicos para representar instruções elementares Ex.: Assembly

Linguagens de Alto Nível Utiliza instruções próximas da linguagem humana de forma a facilitar o raciocínio. Ex.: Uso Científico : Fortran Propósito Geral : Pascal, C, Basic Uso Comercial : Cobol, Clipper Uso específico : Lisp, Prolog Visuais : Delphi, Visual Basic

2.2. Práticas de um bom programador

CRITÉRIOS DE QUALIDADE DE UM PROGRAMA

  • ••• Integridade: Refere-se à precisão das informações manipuladas pelo programa, ou seja, os resultados gerados pelo processamento do programa devem estar corretos, caso contrário o programa simplesmente não tem sentido.
  • ••• Clareza: Refere-se à facilidade de leitura do programa. Se um programa for escrito com clareza, deverá ser possível a outro programador seguir a lógica do programa sem muito esforço, assim como o próprio autor do programa entendê-lo após ter estado um longo período afastado dele. O Pascal favorece a escrita de programas com clareza e legibilidade.
  • ••• Simplicidade: A clareza e precisão de um programa são normalmente melhoradas tornando as coisas o mais simples possível, consistentes com os objetivos do programa. Muitas vezes torna-se necessário sacrificar alguma eficiência de processamento, de forma a manter a estrutura do programa mais simples.
  • ••• Eficiência: Refere-se à velocidade de processamento e a correta utilização da memória. Um programa deve ter performance SUFICIENTE para atender às necessidades do problema e do usuário, bem como deve utilizar os recursos de memória de forma moderada, dentro das limitações do problema.
  • ••• Modularidade: Consiste no particionamento do programa em módulos menores bem identificáveis e com funções específicas, de forma que o conjunto desses módulos e a interação entre eles permitem a resolução do problema de forma mais simples e clara.
  • ••• Generalidade: É interessante que um programa seja tão genérico quanto possível de forma a permitir a reutilização de seus componentes em outros projetos.

2.3. Programação Estruturada

Com o surgimento de diversas linguagens, apareceu a necessidade de se avaliar a capacidade do algoritmo de seguir uma seqüência lógica única , sendo então denominadas de não-estruturadas aquelas que não conseguissem proporcionar tal situação, essas linguagens eram caracterizadas pelo existência do comando GOTO, que reposicionava o foco de execução do programa em qualquer ponto do algoritmo, o que o tornava instável e complexo do ponto de vista comercial. As estruturadas já aceitavam o novo preceito e representam as linguagens atuais de programação.

Efetua a tradução de todo o código-fonte em linguagem de alto nível para as instruções correspondentes em linguagem de máquina, gerando o código-objeto do programa. Em seguida é necessário o uso de um outro programa (Link-Editor) que é responsável pela junção de diversos códigos-objeto em um único programa executável.

EDIÇÃO COMPILAÇÃO LINK-EDIÇÃO ALGORITMO ⇒ CÓDIGO-FONTE ⇒ CÓDIGO-OBJETO ⇒ PROGRAMA EXECUTÁVEL

Possibilidades de Erros no Programa:

  • • • • Erros de Compilação: Erros de digitação e de uso da sintaxe da linguagem.
  • •^ • •^ Erros de Link-Edição:^ Erro no uso de bibliotecas de sub-programas necessárias ao programa principal.
  • • • • Erros de Execução: Erro na lógica do programa (algoritmo).

Podemos dizer, dessa forma, que o processo de programação consiste nos seguintes passos : PROGRAMADOR TRADUTOR ALGORITMO ⇒ LINGUAGEM DE PROGRAMAÇÃO ⇒ LINGUAGEM DE MÁQUINA

3. Introdução a Linguagem Pascal

3.1. Histórico

  • ••• Origem: Desenvolvida nos anos 1970 por Nicklaus Wirth na Universidade Técnica de Zurique, Suíça.
  • ••• Objetivo: Desenvolver uma linguagem de programação disciplinada de alto nível para ensinar programação estruturada.
  • ••• Padronização: ANSI (American National Standars Institute) e IEEE (Institute of Eletrical and Eletronics Engineers)
  • ••• Padrão de Fato: Borland International cria em 1983 o Turbo Pascal (IDE)

3.2. Estrutura de um programa Pascal

Um programa em pascal consiste de um Cabeçalho ( program header ) seguido por uma Seção de Declarações, onde todos os objetos locais são definidos, e de um Corpo, onde são especificados, através de comandos, as ações a serem executadas sobre os objetos.

Program Nome_Do_Programa; { Cabeçalho } [ declaração de units (uses) ] [ declaração de rótulos(labels) ] [ declaração de constantes (const) ] { Seção de Declarações } [ declaração de tipos (type) ] [ declaração de variáveis (var) ] [ declaração de subprogramas ] begin comando [ ; comando] ... { Corpo do Programa } end.

a) Cabeçalho do Programa

O cabeçalho consiste da palavra reservada Program seguida de um identificador que corresponde ao nome do programa, terminando com um ponto e vírgula. Exemplos: Program Circulo; Program Relatório;

b) Seção de Declarações

A sintaxe do pascal requer que todos os identificadores usados no programa sejam predefinidos ou que sejam declarados antes que você possa usá-los. A declaração de identificadores é feita na seção de declaração onde são associados nomes aos objetos que serão usados no programa, tais como tipos de dados, variáveis e sub- programas.

c) Corpo do Programa

Onde são especificados às ações do programa através dos comandos da linguagem. É a onde fica à lógica do programa.

d) O Turbo Pascal

O Turbo Pascal é mais que um simples compilador da linguagem Pascal, ele é um Ambiente Integrado de Desenvolvimento (IDE - Integrated Development Environment), consistindo de um conjunto de ferramentas de desenvolvimento integradas. Entre as ferramentas que compõem o Turbo Pascal temos:

  • Editor de Código-Fonte
  • Compilador
  • Link-Editor
  • Depurador
  • Ajuda On-Line da Linguagem e do próprio IDE

e) Principais Comandos do Turbo Pascal :

  • Compilar o programa : ALT + F
  • Compilar e Executar o Programa : CTRL + F
  • Acessar o Menu : ALT + Letra realçada.
  • Criar um novo programa : menu FILE | NEW
  • Salvar o programa atual : F
  • Sair do Turbo Pascal : ALT + X
  • Ver tela com os resultados do programa executado: ALT + F

f) Programa exemplo:

program Exemplo; begin writeln(‘Programa Teste’); repeat until keypressed; end.

Palavras reservadas do Turbo Pascal :

And downto In packed to Array else inline procedure type Asm end interface program unit Begin file label record until Case for mod repeat until Const forward Nil set uses Constructor function Not shl var Destructor goto object shr while Div if of string with Do implementation or then xor

3.4. Comentários em um programa

Comentários são textos escritos dentro do código-fonte para explicar ou descrever alguns aspectos relativos ao mesmo. Os comentários podem ser colocados em qualquer lugar do programa onde um espaço em branco possa existir. Você pode colocar comentários de duas formas: ou envolvendo o texto entre chaves “{..}” ou entre “ ( .. )”. Quando o compilador encontra o símbolo “{“, este salta todos os caracteres até encontrar um “}”. Da mesma forma, todos os caracteres que seguem “(* são pulados até ser detectado o símbolo ”)”. Como resultado disso, qualquer uma das formas pode ficar dentro da outra; por exemplo {...(...*)...} é um comentário. Uma utilidade de se usar comentários dentro de comentários é quando queremos escrever alguns comandos temporários dentro do programa (talvez para depuração), como ilustramos abaixo:

(* if A = 10 then { este comando é somente para depuração} write( ´ A e igual a 10 ´ ); *)

4. Tipos de Dados Básicos

Um tipo de dados especifica as características, ou seja os valores e operações possíveis de serem utilizados com um dado desse tipo. Toda variável e constante usada em um programa tem um tipo associado a ela.

a) Categorias

Os tipos podem ser divididos em três categorias :

• TIPO ESCALAR (SIMPLES):

Representa uma única peça de dados, podendo ser ordenados, isto é, seus valores mantêm uma certa ordem.

Integer Números inteiros

Real Números reais

Boolean Valores lógicos TRUE ou FALSE

Char Caracteres da Tabela ASCII

Enumerado Relação de Valores em ordem

Subintervalo Faixa de valores ordenados

• TIPO ESTRUTURADO:

Representa uma coleção de itens de dados Ex.:

String Cadeia de caracteres

Array Conjunto de elementos de mesmo tipo

Record Conjunto de elementos de tipos diferentes

Set Conjunto de elementos

File Arquivos de registro

Text Arquivos texto

• TIPO APONTADOR:

Representa uma peça de dados que referencia ou aponta para outra peça de dados

Pointer Referência para uma variável dinâmica

O programador também pode criar seus próprios tipos , como será visto posteriormente. No entanto o Pascal já oferece um conjunto de tipos predefinidos.

4.1. Inteiros

O tipo INTEGER representa os números inteiros. O Turbo Pascal permite cinco tipos predefinidos de números inteiros, cada um abrange um subconjunto dos números inteiros. Todos os tipos inteiros são ordinais (ordenados).

TIPO FAIXA DE VALORES No. De BYTES

Shortint -128..127 Com sinal 8-bits

Integer -32768..32767 Com sinal 16-bits

Longint -2147483648..2147483647 Com sinal 32-bits

Byte 0..255 Sem sinal 8-bits

Word 0..65535 Sem sinal 16-bits

Ex.:

var NumAlunos : integer; Cont : integer;

Ex.: program Totaliza_Horas_De_Trabalho; var

Dias :(Domingo,Segunda,Terca,Quarta,Quinta,Sexta,Sabado);

Meses:(Jan,Fev,Mar,Abr,Mai,Jun,Jul,Ago,Set,Out,Nov,Dez);

TotalHoras, HorasDeTrabalho : integer; begin TotalHoras := 0; for Dias:=Segunda to Sabado do begin readln( HorasDeTrabalho ); TotalHoras := TotalHoras + HorasDeTrabalho; end;

end.

4.6. Subintervalo

O Pascal admite também um tipo denominado subintervalo (subrange) que representa um subconjunto de valores de tipos escalares ordenados. Uma variável do tipo subintervalo é declarada da seguinte forma :

var NumDiadoMes : 1..31; LetrasMaiusculas : ´A´..´Z´; DiaDoAno : 1..365;

4.7. Literais (Tipo estruturado básico)

Armazena uma cadeia de caracteres (String) com o tamanho máximo de até 255 caracteres, mas podemos ser especificar um tamanho menor que 255. A posição [0] da string armazena o seu comprimento. Esse tipo permite a concatenação utilizando-se o operador +.

var Frase : string; Nome : string[45];

5. Variáveis

5.1. Declaração de Variáveis

Uma variável é um valor que pode ser alterado dentro de um programa. Todas as variáveis usadas num programa devem ser declaradas usando a cláusula VAR , dentro da seção de declarações. Nesse comando, além de indicar o nome que deseja para as variáveis, indica-se também qual o tipo que as mesmas estão associadas.

Sintaxe:

var identif [ , identif ]... : tipo-do-dado; [ identif [ , identif ]. : tipo-do-dado; ] ...

O tipo do dado é um dos tipos predefinidos ou um tipo definido pelo usuário:

var Soma, Total, Salario : real;

Idade, Contador : integer;

5.2. Inicialização de Variáveis.

É aconselhável que sé inicie todas às variáveis antes de serem usadas, para que o programa não tenha nenhum efeito colateral, por isso, é aconselhável para o bom programador iniciar todas as variáveis que usar no sistema.

6. Constantes:

6.1. Sem tipo definido (Constantes verdadeiras)

Uma constante é um valor que não pode ser alterado durante a execução do programa. As constantes podem ser divididas nas seguintes categorias de acordo com o tipo predefinido a que elas pertencem:

INTEIRAS Representadas pelos números inteiros.

Ex.: 1230 , -1234 , 0 , 9

REAIS Representadas pelos números reais.

Ex.: 12.57, 100, 100.00, -100.

23.45e-5 = 23.45E-5 = 23.45x10-

LITERAIS Representadas pelos caracteres colocados entre apóstrofos.

Ex.: ´Isto é um exemplo´

´Bem vindo a Sergipe´

´Voce é o 1 colocado´

´´ - Literal Vazia

ARRAY Representadas por um array.

RECORD Representadas por um record

Ex:

const

NumDias = 7; { tipo integer }

NumAulas = 14; { tipo integer }

PI = 3.141519265; { tipo real }

Esporte = ´Futebol de Campo´; { tipo literal }

FatorCalculo = ( PI * 13.5 ) + 9; { tipo real }

AulasDia = NumAulas / NumDias; { tipo real }

6.2. Com tipo definido (Parecidas com variáveis)

A definição de uma constante com tipo definido contém a declaração do tipo (por exemplo, integer, real, string) e pode ser usada em instruções de atribuição. As constantes sem tipo definido não podem ser utilizadas em instruções de atribuição, como é mostrado a seguir: Ex:

const NumDias: integer = 7; {tipo integer} NumAulas: integer = 14; {tipo integer} PI: real = 3.141519265; {tipo real} Esporte: string[20] = ´Futebol de Campo´; {tipo literal}

Usado para atribuir o valor de uma expressão a uma variável.

Exemplo:

A := 10; Nome := ´Josias´;

7.3. Operadores Aritméticos

Usados para efetuar operações aritméticas com número inteiros e reais.

Subtração (^) - Adição (^) + Multiplicação (^) * Divisão Real (^) / Divisão Inteira (truncada ) (^) div Resto da Divisão Inteira (^) mod Inverte Sinal (^) - Mantém Sinal (^) +

Exemplo:

var A, B : integer; C, D : real; begin A := 1; B := 3; C := 5; D := 10; A := 1 + B; A := B + D; {errado,D é real} A:=B+trunc(D) ou A:=B+round(D) B := 10 div 3; A := 10 mod 3; C := D / C; D := 10 div C; { errado, o operado div é só para inteiros } A := -1; B := 5 + A; B := -A; C := D * A; B := C * B; {errado, C é real} B:=trunc(C) * B end.

7.3.1. Binários e Unários

Binários: Quando existem dois operandos em uma expressão. Unários: Quando considerarmos um operando em separado na expresão.

7.3.2. Aritmética de Inteiros e Aritmética de Reais

As regras de aritmética de inteiros se aplicam quando uma expressão é atribuída a uma variável de inteiros. Todos os operadores contidos em uma expressão de inteiros devem ser ou inteiros ou reais convertidos em inteiros usando as funções padrão Trunc ou Round do Turbo Pascal.

  • ••• Somente inteiros
  • ••• Ou convertidos em inteiros (Trunc ou Round)

Uma expressão aritmética apresenta um resultado de ponto flutuante sob as duas seguintes condições: quando a expressão contém alguns operandos de ponto flutuante e quando a operação de divisão é executada com o operador de barra (/). Operandos de ponto flutuante são quaisquer indentificadores definidos como Real ou qualquer literal em numérico com casas decimais (por exemple, 10,2).

7.4. Manipulação de Bits

Usados para efetuar a manipulação dos bits de uma variável.

E binário (^) and Deslocamento de bits ( Shift Left ) (^) shl Deslocamento de bits ( Shift Right ) (^) shr OU binário (^) or XOR binário (^) xor NOT binário (^) not

7.5. Concatenação (+)

Efetua a junção de duas variáveis ou constantes do tipo string.

Exemplo:

var PreNome, SobreNome, NomeCompleto : string[ 30 ]; BEGIN { Suponhamos o nome Josias Lima Santos } PreNome := ´Josias´; SobreNome := ´Santos´; NomeCompleto := PreNome + SobreNome; writeln( NomeCompleto ); NomeCompleto := ´Jose´ + ´Maria´; writeln( NomeCompleto ); END.

7.6. Operadores Relacionais

Usados para efetuar a comparação entre dados de mesmo tipo.

Maior que (^) > Menor que (^) < Maior ou igual (^) >= Menor ou igual (^) <= Igual (^) = Diferente (^) <>

Exemplo:

OPERADOR OR OPERANDO 1 OPERANDO 1 RESULTADO TRUE TRUE TRUE TRUE FALSE TRUE FALSE TRUE TRUE FALSE FALSE FALSE

OPERADOR NOT OPERANDO RESULTADO TRUE FALSE FALSE TRUE

7.8. Operadores de Ponteiros

Usado na manipulação de variáveis dinâmicas e apontadores.

Endereço (^) @ Referência (^) ^

7.9. Operadores de Conjuntos

Usados na manipulação de variáveis do tipo conjunto.

União (^) + Complemento (^) - Intersecção (^) * Igualdade (^) = Desigualdade (^) <> Subconjunto (^) <= , >= Pertinência (^) in Acesso a campos (^).

7.10. Operadores de Tipe-Cast

Usados para alterar o tipo de uma expressão.

Exemplo:

type TDias = ( Dom, Seg, Ter, Qua, Qui, Sex, Sab ); var Dia : TDias; NumDia : 0..6; TudoOk : boolean; Opcao : char; NumOp : byte; BEGIN readln( NumDia ); Dia := TDias( NumDia ); TudoOk := boolean( 1 ); NumOp := byte( opcao ); END.

7.11. Tipos de expressões

Existem três tipos básicos de expressões:

  • Numéricas : Uma expressão é numérica quando os seus operandos são numéricos (inteiros ou reais) e o resultado também é um valor numérico. Nas expressões relacionais são usados os operadores Aritméticos e os de Manipulação de Bits.

Ex: Resultado:=2+2;

  • Literais : Uma expressão é literal quando os seus operandos são literais do tipo string (não pode ser char) e o resultado também é um valor literal. Só existe um único operador para se usar em expressões literais, o operador Concatenação(+).

Ex: Resultado:=’Antonio’+’Carlos’;

  • Booleanas: Uma expressão é booleana quando seu resultado é do tipo boolean (TRUE ou FALSE), podendo seu operando serem de qualquer tipo de dados. Nas expressões relacionais são usados os operadores Lógicos e os Relacionais.

Ex: Resultado:=2>3;

7.12. Hierarquia dos Operadores Aritméticos, Relacionais e Lógicos

Se vários operadores aparecerem em uma expressão, a ordem de execução das operações será dada segundo os critérios abaixo :

  • Pelo emprego explícito de parênteses
  • Pela ordem de precedência existente entre os operadores
  • Se existirem operadores de mesma ordem de precedência, a avaliação será feita da esquerda para a direita.

Ordem de Precedência dos Operadores (da maior para a menor )

Operadores Categoria

( ) Parêntesis

@, not, sinal de adição e

subtração unários

Operadores Unários

*, /, div, mod Operadores Multiplicativos

And, shl, shr, +, -, or, xor Operadores Aditivos

=, <>, <, >, <=, >=, in Operadores Relacionais

8. Comandos:

8.1. Estruturas de Controles (Decisão e Repetição) Decisão: São aqueles que permite efetuarmos um desvio bidirecional ou multidirecional na lógica do programa, segundo uma determinada condição booleana. Repetição: São aqueles que fazem com que um ou vários comandos sejam executados repetidas vezes.