






















Estude fácil! Tem muito documento disponível na Docsity
Ganhe pontos ajudando outros esrudantes ou compre um plano Premium
Prepare-se para as provas
Estude fácil! Tem muito documento disponível na Docsity
Prepare-se para as provas com trabalhos de outros alunos como você, aqui na Docsity
Encontra documentos específicos para os exames da tua universidade
Prepare-se com as videoaulas e exercícios resolvidos criados a partir da grade da sua Universidade
Responda perguntas de provas passadas e avalie sua preparação.
Ganhe pontos para baixar
Ganhe pontos ajudando outros esrudantes ou compre um plano Premium
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
1 / 30
Esta página não é visível na pré-visualização
Não perca as partes importantes!























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
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:
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
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:
e) Principais Comandos do Turbo Pascal :
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 :
Representa uma única peça de dados, podendo ser ordenados, isto é, seus valores mantêm uma certa ordem.
Representa uma coleção de itens de dados Ex.:
Representa uma peça de dados que referencia ou aponta para outra peça de dados
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).
Ex.:
var NumAlunos : integer; Cont : integer;
Ex.: program Totaliza_Horas_De_Trabalho; var
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.
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:
Ex:
const
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.
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.
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:
Ex: Resultado:=2+2;
Ex: Resultado:=’Antonio’+’Carlos’;
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 :
Ordem de Precedência dos Operadores (da maior para a menor )
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.