Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Algoritmos
Sequncia de instrues que especifica os passos para a resoluo de um problema ou realizao de uma tarefa.
Lgica de Programao
Raciocnio que visa ao desenvolvimento de algoritmos. Dado um problema, determinar uma seqncia de instrues para um processador tal que, fornecidos os dados de entrada, a execuo da seqncia de instrues redunde como sada a soluo do problema. Pseudocdigo
Sem formalismo rgido
Semntica
Ao resultante da execuo de uma instruo
Pascal
Linguagem de programao desenvolvida em 1970 por Niklaus Wirth Simples para estimular boas prticas de programao Linguagem usada para ensino de programao Linguagem imperativa Compilada
Pascal
Tipos primitivos de dados Constantes e variveis Expresses lgicas e aritmticas, precedncia entre operadores Identificadores, smbolos especiais, nmeros, cadeias de caracteres Comandos de atribuio Comandos de entrada e sada Estruturas de deciso Estruturas de repetio
Estrutura Bsica
program ProgramName; uses (* declarao de bibliotecas usadas *) const (* declarao de constantes *) type (* declarao de tipos *) var (* declarao de variveis *) (* definies de procedimentos e funes *) begin (* programa principal *) end.
Variveis
var Lista de identificadores: tipo de dado; var Quant: integer; Num, Soma, Media: real; Falhou: boolean; Resposta: char;
Contantes
Uma constante armazena um valor fixado pelo programa que no pode ser alterado durante sua execuo.
const Identifier1 = value; Identifier2 = value; Identifier3 = value; const nome = claudio'; primeiraLetra = 'c'; ano = 2008; pi = 3.1415926535897932; achou = TRUE; a : real = 12;
Identificadores
Seqncia de letras, dgitos e caractere para sublinhamento O primeiro caractere do identificador no pode ser um dgito Palavras reservadas
Uso -> Erro sinttico
Identificadores
Palavras reservadas
Tipos de Dados
char: letras, dgitos e caracteres especiais como :, ?, e * shortint: nmeros inteiros do intervalo [-128, 127] integer: nmeros inteiros do intervalo [32768, 32767] longint: nmeros inteiros do intervalo [-2147483648, 2147483647] byte: nmeros inteiros do intervalo [0, 255] word: nmeros inteiros do intervalo [0, 65535] real: nmeros reais do conjunto [3,4x1038, 3,4x1038] boolean: conjunto dos valores false (falso) e true (verdadeiro)
Comentrios
(* isso um comentrio *) { isso um comentrio }
Expresses aritmticas
+ : adio - : subtrao * : multiplicao / : diviso div : quociente : ex: 30 div 7 = 4, 5 div 7 = 0 mod : resto : 30 mod 7 = 2, 5 mod 7 = 5 Parnteses
Ex: 2 + (3 * 4) Precedncia
() operador unrio div, mod, *, / +, -
Expresses Relacionais
> maior do que >= maior do que ou igual a < menor do que <= menor do que ou igual a = igual <> diferente
3 > 5 resulta false 7 <= 7 resulta true 3*4 - 5 < 2*3 - 4 resulta false
Expresses Lgicas
and or not operadores relacionais tm prioridade mais baixa que os operadores lgicos not (5 > 3) or (5 < 3)
false
Comando de Atribuio
Identificador de varivel := expresso; a := 2.8; b := a*a/2;
program TesteEntradaSaida; var c: char; begin writeln('Digite um caractere'); readln(c); writeln('Voce digitou ', c, '.'); end.
Digite trs nmeros reais: 8.43 6.1 13.145 A mdia dos nmeros 8.4300000000E+00, 6.1000000000E+00 e 1.3145000000E+01 9.2250000000E+00
exibe na tela
1.25 567.89 42.46
Exemplo
program converteC2F; var celsius, fahrenheit: real; begin readln(celsius); fahrenheit := (9*celsius)/5 + 32; writeln (fahrenheit:0:2); end.
Exerccio
Escreva um programa em Pascal que determine o algarismo da casa das unidades de um inteiro fornecido pelo usurio.
Exerccio
{Programa que determina o algarismo da casa das unidades de um inteiro} program AlgarismoDasUnidades; var n, Unid : integer; begin writeln('Digite um inteiro'); readln(n); Unid := n mod 10; writeln('O algarismo das unidades de ', n, ' ', Unid); end.
Exerccio
Escreva um programa em Pascal que inverta um nmero com dois algarismos.
Exerccio
{Programa que inverte um nmero com dois algarismos} program InverteNumeroComDoisAlgarismos; var n, Inv, Unid, Dez : integer; begin writeln('Digite um inteiro com dois algarismos'); readln(n); Unid := n mod 10; Dez := n div 10; Inv := Unid * 10 + Dez; writeln('O invertido de ', n, ' ', Inv ); end.
Exerccio
Escreva um programa em Pascal que permute os contedos de duas variveis.
Exerccio
{Programa que permuta os contedos de duas variveis} program Troca; var x, y, Xant, Yant : real; begin readln(x, y); writeln('Entrada: x = ', x, ' e y = ', y); Xant := x; Yant := y; x := Yant; y := Xant; writeln('Saida: x = ', x, ' e y = ', y); end.
Exerccio
{Programa que permuta os contedos de duas variveis} {com apenas uma varivel auxiliar} program Troca; var x, y, Aux : real; begin readln(x, y); writeln('Entrada: x = ', x, ' e y = ', y); Aux := x; x := y; y := Aux; writeln('Saida: x = ', x, ' e y = ', y); end.
Funes Predefinidas
Outras unidades -> depende do compilador. program LimpaTela; uses Crt; begin ClrScr; end.
Exemplo
Programa em Pascal que determina a rea de um tringulo de lados de comprimentos dados a rea do tringulo cujos lados tm comprimentos x, y e z dada por
onde
o semipermetro do tringulo
Exerccio
{Programa que determina a rea de um tringulo a partir de seus lados} program AreaTriangulo; var a, b, c, SemiPer, Area : real; begin writeln('Digite os lados do tringulo'); readln(a, b, c); SemiPer := (a + b + c)/2; Area := SqrT(SemiPer*(SemiPer - a)*(SemiPer - b)*(SemiPer - c)); writeln('rea do tringulo = ', Area); end.