Escolar Documentos
Profissional Documentos
Cultura Documentos
Algoritmo
Entrada Sada
Processo Codificao
Descrio dos passos
Cdigo Fonte
Pascal
Desenvolvida com o intuito de facilitar a estruturao de programas de fcil aprendizado. Outras linguagem da mesma famlia introduzem elementos que so confusos para o programador inexperiente. A sua sintaxe clara e consistente, facilitando o aprendizado dos primeiros conceitos algortmicos.
Exemplo:
Algoritmo Razes varivel a,b,c: real delta: real x1,x2: real leia(a,b,c) delta \atr b*b - 4*a*c se (delta < 0) ento escreva('Esta equao no possui razes reais.') seno x1 \atr (-1*b - raiz(delta,2)) / 2*a x2 \atr (-1*b + raiz(delta,2)) / 2*a escreva('As razes so ',x1,' e ', x2) fim se fim
Exemplo:
PROGRAM raizes; VAR a,b,c: real; delta: real; x1,x2: real;
Caractersticas
Semelhana com o pseudo-cdigo; Alguns comandos foram adicionados, mas estruturalmente o algoritmo e o programa so muito parecidos;
begin write('Digite o valor de a '); readln(a); write('Digite o valor de b '); readln(b); write('Digite o valor de c '); readln(c); delta := b*b - 4*a*c; if (delta < 0) then writeln('Esta equacao nao possui raizes reais.') else begin x1 := (-b - sqrt(delta)) / (2*a); x2 := (-b + sqrt(delta)) / (2*a); writeln('As raizes sao ',x1:6:3,' e ', x2:6:3) end; readln; end.
O que muda
A sintaxe torna-se mais rgida, restrita ao vocabulrio especfico da linguagem de programao; A pontuao torna-se necessria; No algoritmo a capacidade de representao (tamanho) e a preciso das variveis numricas so infinitos. Eventualmente alguma construo que fazemos em algoritmos pode no ser eficiente na linguagem de programao (melhorar a eficincia)
O que muda
Devemos nos preocupar com erros e situaes excepcionais, como diviso por zero e variveis com valores inadequados fornecidos pelo usurio. Os comentrios que identificam o algoritmo e que esclarecem sua construo devem ser transcritos na codificao. A a forma de interao do programa com as pessoas deve ser planejada e includa no programa. Os clculos devem ser codificados de forma a tornlos rpidos e precisos conforme os recursos apresentados pela linguagem.
Cdigo Fonte
Demanda por legibilidade e compreensibilidade
a possibilidade de ser modificado eficientemente e de evoluir
Recomendaes
Procure estabelecer e manter um padro de documentao. Comente o objetivo do programa, a autoria do programa, os trechos menos bvios de cdigo, e o significado das variveis menos bvias. Escolha mensagens claras, e procure definir bons casos de teste para o seu programa. Revise o cdigo desenvolvido pelo menos uma vez para programas pequenos, e pelo menos duas para programas maiores.
Pascal
Ambiente Turbo Pascal
Pascal
Pascal
Pascal
Pascal
Pascal
Identificadores
Um identificador pode ter qualquer tamanho, mas apenas os 63 primeiros caracteres so considerados pelo compilador. Os demais so ignorados. Podem ser utilizados apenas os dgitos numricos, as letras minsculas, as letras maisculas e o caractere de sublinha ('_').
Identificadores
nome idade1 preco kW VALOR _valido
Identificadores
Exemplos NO Vlidos
preo dia$/$mes vlido 2idades
Exemplos Vlidos:
Preciso
Ponto flutuante
Variveis e Atribuio
As variveis so definidas em uma seo especfica: VAR
var
variavel1,...,variveln : TIPO;
Definio de Constantes
Utiliza-se a clusula CONST: Exemplo:
A atribuio :=
idade := 23;
Expresses Aritmticas
CONST IDADE_MINIMA = 31; MASCULINO = 'M'; SALARIO_MINIMO = 240.00; DIARISTA_TEM_BASE = TRUE; ERRO = 5E-6;
Expresses Lgicas
Exemplo
program seguro; VAR idade: integer; valor: real; fator: real; segurado: boolean; begin idade := 28; valor := 1000.00; fator := 0,05; segurado := idade < 30 AND valor*fator <= 500.00 end.
write e writeln
A tela tratada como um conjunto de linhas divididas em colunas. Cada caractere impresso usando write ou writeln ou digitado no teclado impresso na tela e ocupa uma coluna em uma linha. O cursor desloca-se para a direita medida que os caracteres vo sendo impressos e muda de linha voltando primeira coluna de acordo com as funes de entrada e sada.
Formato Geral
Formato geral de sada:
Comandos de Sada
Quando usamos a funo write, aps a impresso da lista de parmetros o cursor de tela fica posicionado na primeira coluna vazia da ltima linha impressa; Exemplo:
Exemplos:
write('mensagem de escrita 1'); writeln(' mensagem de escrita 2'); mensagem de escrita 1 mensagem de escrita 2
writeln('numero de funcionarios com idade superior a',5,':',func_superior); writeln('Para um salario base =', salario_base,'o valor do salario calculado passa a ser ',salario); write('digite o valor do coeficiente a:');
Formatao de Nmeros
valora := 6.0; valorb := 5.389; valorc := 44.0; writeln(valora); writeln(valorb); writeln(valorc);
Entrada de Dados
Para a leitura de dados, a lista de parmetros das funes read e readln pode incluir apenas variveis, que recebero os valores digitados pelo usurio. Tais variveis podem ser de qualquer tipo simples, exceto o enumerado.
Entrada de Dados
Formato Geral
read(varivel, varivel, ...); readln(varivel, varivel, ...);]
Exemplo:
readln(i,j); write('digite o nmero de funcionrios diaristas: '); readln(nro_funcionarios); write('digite o valor do coeficiente a: '); read(a); write('e do coeficiente b: '); readln(b);
Comandos e blocos de comandos em Pascal so finalizados com o caracter ';. Ele opcional apenas em comandos que precedem as palavras reservadas que delimitam o incio e o fim de um bloco de comandos e no deve ser utilizado imediatamente antes da palavra else.
Exemplo
PROGRAM raizes; {Programa para calcular as raizes de uma equacao de segundo grau} VAR a,b,c: real; {coeficientes da equacao} delta: real; {auxiliar no calculo das raizes} x1,x2: real; {raizes calculadas} begin {le os dados} write('Digite o valor de a '); readln(a); {a deve ser diferente de zero} while (a=0) do begin write('a deve ser diferente de 0, por favor digite novamente', 'o valor de a '); readln(a); end;
10
Exemplo
write('Digite o valor de b '); readln(b); write('Digite o valor de c '); readln(c); delta := b*b - 4*a*c; {verifica condicao de existencia de raizes} if (delta < 0) then writeln('Esta equacao nao possui raizes reais.') else begin {calcula as raizes} x1 := (-b - sqrt(delta)) / (2*a); x2 := (-b + sqrt(delta)) / (2*a); writeln('As raizes sao ',x1:6:3,' e ', x2:6:3) end; readln; end.
Codificao
Introduo Computao Rosane Minghim
11