Programação

Definição de Algoritmo
É a descrição, de forma lógica, dos passos a serem executados no cumprimento
de determinada tarefa.
É a forma pela qual descrevemos soluções de problemas do nosso mundo, afim
de serem implementadas utilizando os recursos do mundo computacional. Como este
possuí severas limitações em relação ao nosso mundo, exige que sejam impostas
algumas regras básicas na forma de solucionar os problemas para que possamos utilizar
os recursos de hardware e software disponíveis

Algoritmo x Programa
Um algoritmo é uma seqüência lógica de ações a serem executadas para se
executar uma determinada tarefa. Um 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

Linguagem de Programação
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ênteses aberto em uma expressão aritmética deve
corresponder a um parênteses 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.

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, como pode ser visto na
tab

LINGUAGEM CARACTERÍSTICAS
Linguagem de Máquina Única compreendida pelo computador.
Específica de cada computador.
Linguagens de Baixo Nível Utiliza 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
TABELA 1.1 – TIPOS DE LINGUAGENS DE PROGRAMAÇÃO E SUAS CARACTERÍSTICAS


Processo de Criação e Execução de um Programa
Embora seja teoricamente possível a construção de computadores especiais,
capazes de executar programas escritos em uma linguagem de programação qualquer, os
computadores, existentes hoje em dia são capazes de executar somente programas em
linguagem de baixo nível, a Linguagem de Máquina.
Linguagens de Máquina são projetadas levando-se em conta os seguintes
aspectos :
·  rapidez de execução de programas;
·  custo de sua implementação; e
·  flexibilidade com que permite a construção de programas de nível mais alto.
Por outro lado, linguagens de programação de alto nível são projetadas em
função de :
·  facilidade de construção de programas; e
·  confiabilidade dos programas.
O PROBLEMA É: Como a linguagem de nível mais alto pode ser implementada
em um computador, cuja linguagem é bastante diferente e de nível mais baixo ?
SOLUÇÃO: Através da tradução de programas escritos em linguagens de alto
nível para a linguagem de baixo nível do computador.
Para isso existem três tipos de programas tradutores : Montadores,
Interpretadores e Compiladores. Vejamos o que cada um deles representa.
MONTADOR
Efetua a tradução de linguagem de montagem ( Assembly ) para a linguagem de
máquina, da seguinte forma:
·  obtém a próxima instrução do Assembly;
·  traduz para as instruções correspondentes em linguagem de máquina;
 ·  executa as instruções em linguagem de máquina; e
·  repete o passo 1 até o fim do programa.
INTERPRETADOR
Efetua a tradução a de uma linguagem de alto nível para linguagem de máquina
da seguinte forma:
·  obtém próxima instrução do código-fonte em linguagem de alto nível;
·  traduz para as instruções correspondentes em linguagem de máquina;
·  executa as instruções em linguagem de máquina; e
·  repete o passo 1 até o fim do programa
COMPILADOR
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).
Critérios de Qualidade de um Programa
Vejamos alguns critérios para escrevermos um programa com qualidade:
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 seu entendimento o mais simples possível, consistente 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
necessidade 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 permite a resolução do problema de forma mais simples e clara;
e
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.
A Linguagem Pascal
Histórico
Origem: desenvolvida nos anos entre 1968 e 1970 por Nicklaus Wirth na
Universidade Técnica de Zurique, Suíça. Em 1970 é disponibilizado o primeiro
compilador para a linguagem.
Objetivo: desenvolver uma linguagem de programação disciplinada de alto nível
para ensinar programação estruturada. Esta linguagem foi batizada com o nome de
Pascal, em homenagem a Blaise Pascal, filósofo e matemático francês que viveu entre
1623 e 1662.
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.
Atualizações: durante os últimos anos foram lançadas diversas variações da
linguagem Pascal-Padrão, implementando recursos que não são encontrados na estrutura
padrão da linguagem. Nas mãos da Borland, já foram lançadas as versões 3.0, 4.0, 5.0 e
5.5 na década de 80. Durante a década de 90 foram lançadas as versões 6.0, 7.0 e o
lançamento da linguagem Delphi, para programação em ambiente Windows.
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
Podemos citar alguns comandos principais do Turbo Pascal :
·  Compilar o programa : ALT + F9
·  Compilar e Executar o Programa : CTRL + F9
·  Acessar o Menu : ALT + Letra realçada.
·  Criar um novo programa : menu FILE | NEW
·  Salvar o programa atual : F2
·  Sair do Turbo Pascal : ALT + X
·  Ver tela com os resultados do programa executado : ALT + F5

ESTRUTURA DE UM PROGRAMA EM PASCAL
Todo programa escrito em Pascal é subdividido em três áreas distintas:
cabeçalho do programa, área de declarações e corpo do programa.

Cabeçalho do Programa
Esta área é utilizada para se fazer a identificação do programa com um nome. O
cabeçalho de um programa é atribuído pela instrução program seguida de um nome. Ao
final do nome deve-se colocar o símbolo ponto-e-vírgula ( ; ). Não pode existir
nenhuma variável no programa que tenha o mesmo nome dado ao programa.
Vejamos um exemplo:
program CALCULA_AREA;
Caso você tenha atribuído ao programa o nome Soma e também tenha atribuído
este nome a uma variável no programa, quando for executado apresentará um
mensagem de erro.

Área de Declarações
Esta área é utilizada para validar o uso de qualquer tipo de identificador que não
seja predefinido, estando subdividida em sete sub-áreas: uses, label, const, type, var,
procedure e function.
Inicialmente, vamos estudar apenas a sub-área var. As demais serão estudadas
em capítulos posteriores. A sub-área var é utilizada na declaração das variáveis que
serão utilizadas durante a execução de um programa, bem como, também o seu tipo.
Desta forma, a linguagem Pascal efetua a reserva de espaço na memória para que as
variáveis sejam utilizadas.
A declaração das variáveis é atribuída pela instrução var seguida da relação de
variáveis. Após os nomes de cada variável deverá ser utilizado o símbolo dois-pontos
( : ), e após estes é mencionado o tipo de dado que a variável irá receber, seguido de
ponto-e-vírgula.
Vejamos um exemplo:
var
NOME : string;IDADE : integer;
ALTURA : real;
Caso as variáveis sejam de mesmo tipo, estas poderão ser relacionadas separadas
por vírgula. Vejamos um exemplo:
A, B, C : integer;
Corpo do Programa
O programa propriamente dito em Pascal está escrito na área denominada corpo
do programa. esta área tem início com a instrução begin e é finalizada pela instrução
end seguida do símbolo ponto ( . ). O uso destas instruções caracteriza o que é chamado
de bloco, como indicado abaixo:
begin
instruções;
(...)
end.
Na área denominada corpo do programa, poderão existir, dependendo da
necessidade, vários blocos .
Exemplo de um Programa em Pascal
Para se colocar em prática o que foi explicado até este momento, considere o
seguinte exemplo de um problema:
“Desenvolver um programa que efetue a leitura de dois valores numéricos.
Faça a operação de adição entre os dois valores e apresente o resultado obtido.”
Note que sempre estaremos diante de um problema, e que este deverá ser
resolvido primeiro por nós, para que depois seja resolvido por um computador.
Primeiramente, você deve entender bem o problema, para depois buscar a sua solução
dentro de um computador, ou seja, você deverá “ensinar” a máquina a resolver seu
problema, através de um programa. Desta forma, o segredo de uma boa lógica está na
compreensão adequada do problema a ser solucionado. Vejamos nosso problema citado
acima:
Algoritmo:
1. Ler um valor para a variável A;
2. Ler outro valor para a variável B;
3. Efetuar a soma das variáveis A e B, colocando o resultado na variável X;
4. Apresentar o valor da variável X após a operação de soma dos dois valores
fornecidos.
Completada a fase de interpretação do problema e da definição das variáveis a
serem utilizadas passa-se para a fase de codificação de nosso programa para a
linguagem Pascal.

Programa em Pascal

program ADICIONA_NUMEROS;
var
X : integer;
A : integer;
B : integer;
begin
readln(A);
readln(B);
X := A + B;
writeln(X);
end
.
Entrada e Saída dos Dados
Você deve ter observado os comandos readln e writeln. Estes comandos são
chamados de entrada e saída dos dados, respectivamente. A instrução readln permite a
entrada de dados via teclado e a instrução writeln gera a saída de dados via vídeo.
Poderiam também ser utilizadas as instruções write e read. Mas qual a diferença
entre elas?
É muito simples: a colocação da ln indica line new, ou seja, nova linha. Será
realizado um “pulo” de linha após a leitura ou exibição dos dados. As instruções write e
read permitem manter o cursor na mesma linha, após a exibição das mensagens ou
leitura de dados.


Programa de Repetição


Program teste ;
uses crt;

procedure ReplicaTexto(texto:string;sleep:integer);
var i:integer;
 Begin
      for i:= 1 to i do
        if not keypressed then
             Begin
                gotoxy (random(60),random(25));
            textbackground(i);
            textcolor(i+10);  
            Writeln(texto);
            delay(sleep);
         end
       else
           exit;      
 end;
  Begin
     ReplicaTexto('Diego fatec',10);         
 end.


 
     





Programa em Delphi.
Navegador    
   unit frmNav2r;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, OleCtrls, SHDocVw, ExtCtrls, ComCtrls, jpeg;

type
  TForm1 = class(TForm)
    Button1: TButton;
    Button2: TButton;
    Button3: TButton;
    Button4: TButton;
    Button5: TButton;
    WebBrowser1: TWebBrowser;
    Timer1: TTimer;
    ProgressBar1: TProgressBar;
    Edit1: TEdit;
    Image1: TImage;
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
    procedure Button3Click(Sender: TObject);
    procedure Button4Click(Sender: TObject);
    procedure Button5Click(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure Timer1Timer(Sender: TObject);
    procedure Button6Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
begin
if (Edit1.text = ' ') then begin
Showmessage('Digite o Site');
abort;
end
else
Webbrowser1.Navigate(Edit1.Text);
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
 Webbrowser1.Goback;  //Voltar a Pagina
end;

procedure TForm1.Button3Click(Sender: TObject);
begin
  Webbrowser1.GoForward;   //Avançar a pagina
end;

procedure TForm1.Button4Click(Sender: TObject);
begin
 Webbrowser1.Stop;    //Parar
end;

procedure TForm1.Button5Click(Sender: TObject);
begin
Webbrowser1.Refresh;  //Atualizar
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
 progressbar1.Position := progressbar1.Position + 1
end;

procedure TForm1.Timer1Timer(Sender: TObject);
begin
 progressbar1.Position := progressbar1.Position + 1
end;

procedure TForm1.Button6Click(Sender: TObject);
begin
Close;
end;

end.                             

Calculadora

unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, jpeg, ExtCtrls, StdCtrls;

type
  TForm1 = class(TForm)
    Edit1: TEdit;
    Edit2: TEdit;
    Button1: TButton;
    Image1: TImage;
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
var
A:real;
B:real;
begin
    A:= StrToFloat (Edit1.Text);
    B:= StrToFloat (Edit2.Text);
    ShowMessage (FloatToStr(A+B));
end;

end.