Prof. Dr. Marcelo Duduchi

Slides:



Advertisements
Apresentações semelhantes
Estruturação de Linguagens (Pascal e C++)
Advertisements

Programação em Java Prof. Maurício Braga
Linguagem de Programação I
Programação de Computadores
Algoritmo I Aula 05 Pseudo-Linguagem.
Programação II Estruturas de Dados Aula 01
Introdução a Programação Renata Freire
PROGRAMAÇÃO MODULAR (com uso de subprogramas) prof
Introdução à Linguagem PASCAL Prof. Luis Otavio Alvares
Adaptado de material da profa. Maria Aparecida Livi
Programação para Engenharia I
Linguagem C LPG-I – Variáveis Estruturadas – Vetores
Estruturas de Dados II Prof.: Sergio Pacheco Prof.: Sergio Pacheco 1 1.
Algoritmos e Estruturas de Dados II
Delphi Disciplina de Programação Visual 2/Linguagem de Banco de dados – QI – Aula1 Prof. Luciano Monteiro.
Revisão da Linguagem C.
Tópicos Tipos de Dados Variáveis por Valor Variáveis por Referência
O Portal do Estudante de Computação
O Portal do Estudante de Computação
O Portal do Estudante de Computação
Paradigmas de programação
João Lucas de Oliveira Torres
Semana 03: Comandos de desvio de fluxo. Expressões lógicas.
Ponteiros em Pascal Variáveis ponteiros são aquelas que guardam o endereço de outra, possibilitando o acesso a seu conteúdo. Declaração em Pascal:  var.
Variáveis, Tipos de Dados e Constantes
Introdução a Computação e Cálculo Numérico
Sub-programas. Mecanismo de composição de programas Sub-programa está para peça de LEGO assim como um programa está para a construção.
Aula prática 6 Vetores e Matrizes
Linguagem de Programação II Parte VII
Linguagem de Programação II Parte IX
Introdução a Programação COM 100
Estrutura de dados, pseudocódigo
Introdução a Linguagem de Programação C
Seminário 1: Revisão de C
Introdução ao uso de vatores na linguagem PASCAL.
Fábio de Oliveira Borges
Semana 03 Comandos de desvio de fluxo. Expressões lógicas.
O Portal do Estudante de Computação
Operadores Relacionais, Lógicos e comandos de condição
Programação em C++ Compiladores
Paradigmas de Programação - prof Gláucya Carreiro Boechat1 Elaborando um Programa Prof.: Gláucya Carreiro Boechat Universidade.
Vetores e Matrizes Ameliara Freire
Computação Eletrônica
Capítulo III Modularização Procedimentos e Funções Universidade Federal de São Carlos Departamento de Computação Aluna: Luanna Lopes Lobato
Linguagem Pascal Prof. Sérgio Rodrigues.
Lógica Estruturada Aplicada
Faculdade Talentos Humanos - FACTHUS - Algoritmo I - Rogério Rodrigues
ARQUIVOS.
Educação Profissional Técnica de Nível Médio Curso Técnico de Informática
LINGUAGENS DE PROGRAMAÇÃO
Algumas notas sobre a linguagem de programação C
Aula prática 2 Operadores e Expressões Comandos de Decisão Comentários
“Introdução a Computação” Capítulo II Estruturas de Dados
VARIÁVEIS COMPOSTAS HOMOGÊNEAS UNIDIMENSIONAIS (VETORES)
Estruturas de Dados + Algoritmos = Programas
ALGORITMIA. ALGORITMO Conjunto de instruções ou acções que ao serem executadas, permitirão realizar uma determinada tarefa.
Programação de Computadores - 1
Introdução à Programação
Tipos de Dados Todo o trabalho realizado por um computador é baseado na manipulação das informações contidas em sua memória. Estas informações podem.
AULA 09 PROGRAMAÇÃO I. Estruturas de Dados Heterogêneas 10/08/2010 Programação I 2 Objetivo: Estudar os tipos de dados heterogêneos:  Registros;  Arrays.
 O que são arrays:  estruturas de dados homogêneas  coleção de elementos do mesmo tipo referenciada por um nome comum  um array pode ser imaginado.
Tipos de Dados, Variáveis, Expressões Lógicas e Aritméticas
11 Revisão da Linguagem C Prof. Kariston Pereira Adaptado de Material gentilmente fornecido pelo Prof. Rui Tramontin (DCC/UDESC)
Programação estruturada unidade 2
Computadores vs. Programas / Algoritmos Computadores vs. Programas -> Algoritmos O tratamento de problemas através do computador geralmente envolve uma.
Computação Eletrônica Variáveis Inteiras. A memória A memória pode ser vista como um imenso gaveteiro Em cada gaveta, guardamos uma informação. Por exemplo,
Programação e Sistemas da Informação 48 tempos IPTrans, Novembro 2009 Prof. Marisa Gomes.
Lógica de Programação Aula 06 Prof. Marcelo Marcony.
SUB-ROTINAS EM PASCAL PROGRAMAÇÃO MODULARIZADA 252.
Transcrição da apresentação:

Prof. Dr. Marcelo Duduchi Computação I MPCE Programação Pascal Prof. Dr. Marcelo Duduchi

Objetivos Como funciona e qual a estrutura básica de um programa Pascal? Quais as estruturas de controle de fluxo de controle existentes no Pascal? Quais as estruturas de dados pré- definidas no Pascal? Como trabalhar com subrotinas em Pascal?

Tópicos Abordados (1) Estrutura de um programa Pascal; Tipos de dados, variáveis e constantes; Operadores; Comandos de leitura e escrita (I/O); Estruturas de controle seqüencial; Estruturas de controle de decisão; Estruturas de controle de repetição;

Tópicos Abordados (2) Transformação de tipos de dados; Tipos estruturados homogêneos: unidimensionais e multidimensionais; Tipos estruturados heterogêneos; Criação de Novos tipos de dados; Manipulação de cadeias de caracteres; Subrotinas (funções e procedimentos); Passagem de parâmetros;

Estrutura de um programa Pascal Program Nomedoprograma; uses biblioteca 1,...,biblioteca n; const constante 1,...,constante n; type nome do tipo = declaração do tipo; var lista de variáveis : tipo da variável; declaração das procedures e functions; begin comandos end.

Tipos de Dados Inteiro; Número em ponto flutuante (real); Caractere; Cadeia de Caracteres; Lógico;

Valores Inteiros byte: 0 a 255; shortint -128 a 127; word 0 a 65.535; integer -32.768 a 32.767; longint -2147483648 a 2147483647; respectivamente: 1, 1, 2, 2 e 4 bytes

Valores em Ponto Flutuante single 1.5E-45 a 3.4E38; real 2.9E-39 a 1.7E38; double 5.0E-324 a 1.1E308; extended 3.4E-4951 a 1.1E4932; comp 9.2E-18 a 9.2E18; respectivamente:8,12,15,20 e 20 casas; respectivamente:4,6,8,10 e 8 bytes

Um Único Caractere (char) Ocupa um byte e permite armazenar um caractere da tabela ASCII que possui 256 caracteres; Pode ser informado entre apóstrofo ou com o caractere # e o número da tabela referente ao caractere; Exemplo: #70 ou ‘F’

Cadeia de Caracteres (String) Ocupa até 256 bytes dependendo da declaração e permite armazenar caracteres da tabela ASCII; seu tamanho pode ser informado entre colchetes na declaração e tem valor referenciado entre apóstrofos; exemplo: ‘cadeia de caracteres’

Valor lógico (boolean) Ocupa um byte de memória usado para armazenar os valores lógicos verdadeiro (true) e falso (false); pode ser manipulado pelos operadores lógicos: NÃO (not), E (and), OU (or) e OU EXCLUSIVO (xor)

Identificadores Nomes que são criados pelo programador para representar elementos diversos dentro do programa; São usados no Pascal para denominar programas, novos tipos de dados, constantes, variáveis, funções e procedimentos;

Identificadores Pode ter qualquer tamanho com 63 primeiros dígitos significativos; Pode utilizar os caracteres de: ‘0’ a ‘9’, ‘A’ a ‘Z’, ‘a’ a ‘z’ e ‘_’ Deve ser diferente das palavras reservadas do Pascal; Não pode começar por número; Trata Maiúsculas = Minúsculas;

Declaração de Constantes Deve-se indicar a palavra const seguida do nome, = e o valor a ser armazenado; Não pode ter seu valor alterado durante o programa; const nome = valor; Exemplo: const PI = 3.1416;

Variáveis Área de memória cujo valor pode ser alterado através de seu nome ou seu endereço; É utilizada para guardar valores temporários do programa; Seu conteúdo pode ser alterado durante a execução do programa;

Declaração de Variáveis Deve-se indicar a palavra var seguida do nome, : e o tipo de dados a ser armazenado por ela; var nome : tipo de dado; Exemplos: var nota:integer; var N1, N2, N3:real; var Nome: string[40];

Operadores Lógicos NÃO: identificado por not; E: identificado por and; OU: identificado por or; OU EXCLUSIVO: por xor;

Operadores Aritméticos + : adição; - : subtração; * : multiplicação; / : divisão real; div : divisão inteira; mod: resto da divisão;

Operadores Relacionais < , <= : menor e menor ou igual; > , >= : maior e maior ou igual; = : valor igual; < > : valor diferente; in [ valor inicial .. valor final] : verificar se o valor está entre valor inicial e final citado no comando;

Comando de Escrita (saída) Pode ser usado só write escrevendo na posição corrente do cursor o conteúdo indicado; Pode ser usado writeln escrevendo o conteúdo indicado e pulando de linha em seguida; Formato: write ( valor : tamanho : decimais );

Comando de Escrita (saída) Exemplos: write(custo:9:2); writeln(‘João’); writeln(‘Valor = ’,x); write(x+y);

Comando de Leitura (entrada) Pode ser usado read ou readln colocando dentro da variável indicada o valor digitado pelo usuário; O readln é usado para ler a linha toda até o enter o read permite a inclusão de diversos valores de acordo com o número de variáveis Formato: read (variável1, variável2);

Comando de Leitura (entrada) Exemplos: read(a,b,c); readln(nome); readln(turma); Pode ter sua saída controlada por {$I-} e {$I+} em conjunto com o ioresult;

Comando de Leitura (readkey) Utilizado quando necessitamos de digitação onde a entrada não necessita de um <enter> no final; Retorna um valor para a rotina chamadora que deve ser atribuído a alguma variável; formato: variável : = readkey;

Comando de Leitura (readkey) Exemplos: x:=readkey; writeln(readkey); entrada:=readkey; Necessita da declaração: “uses CRT”;

Comentários Às vezes é interessante comentar linhas de código para que este fique documentado. Para isto usamos seguinte: { comentário } ou (* comentários de diversas linhas *)

Controle de fluxo de execução Para que se controle a seqüência de comandos a serem executados permitindo que seja criada uma lógica que corresponde ao algoritmo desejado usamos as estruturas de controle: seqüencial; de decisão ou condicional; de repetição ou de loop;

Estrutura de controle seqüencial Usada para agrupar conjunto de comandos; Faz com que o bloco seja tratado como um único comando; Usado em estruturas de controle, funções e procedimentos com “;” e no final do programa com o “.”; Formato: begin comandos end;

Estrutura de controle de decisão If é usada quando se deve tomar uma decisão de qual grupo de rotinas o programa deve executar; Não permite por si só que comandos voltem a executar de forma repetitiva; Pode ser usada de forma a encadear uma estrutura de decisão dentro de outra (ninho de if ’s);

Estrutura de controle de decisão Formatos: If decisão then comando ou bloco de comandos; cuidado: antes do “else” não colocar “;” If decisão then comando ou bloco de comandos else bloco de comandos;

Estrutura de controle de decisão Exemplos: ... If nota >= 5.0 then writeln(‘aprovado’); ... readln(nota); If nota >= 5.0 then writeln(‘aprovado’) else writeln(‘reprovado’);

Estrutura de controle de decisão Exemplos: ... If nota >= 5.0 then begin writeln(‘exame:’); readln(nota); end; ... If x <= y then begin writeln(‘pode ser:’); writeln(‘x < ou = y’); end else writeln(‘x é maior’); ...

Estrutura de controle de decisão Exemplos: ... If x > 3 then begin if y > 3 writeln(‘saída A’) else writeln(‘saída B’); end; Se X = 2 e Y = 2: Se X = 2 e Y = 5: Se X = 5 e Y = 2: Se X = 5 e Y = 5:

Estrutura de controle de decisão Exemplos: ... If x > 3 then begin if y > 3 then writeln(‘saída A’) else writeln(‘saída B’); end; Se X = 2 e Y = 2: Não escreve nada; Se X = 2 e Y = 5: Se X = 5 e Y = 2: Escreve “saída B”; Se X = 5 e Y = 5: Escreve “saída A”;

Estrutura de controle de decisão Exemplos: ... If (x>3) and (y>3) then begin writeln(‘saída A’) else writeln(‘saída B’); end; Se X = 2 e Y = 2: Se X = 2 e Y = 5: Se X = 5 e Y = 2: Se X = 5 e Y = 5:

Estrutura de controle de decisão Exemplos: ... If (x>3) and (y>3) then begin writeln(‘saída A’); end else writeln(‘saída B’); end; Se X = 2 e Y = 2: Escreve “saída B”; Se X = 2 e Y = 5: Se X = 5 e Y = 2: Se X = 5 e Y = 5: Escreve “saída A”;

Faça um programa que receba duas notas, calcule a média das notas e mostre na tela se o aluno foi aprovado.   Program exmedia; uses crt; var soma,nota1,nota2:real; begin   writeln(´Digite as notas das provas´);   read (nota1,nota2);   media:=(nota1+nota2)/2;   if media>=5 then     writeln(´Aprovado´) else     writeln(´Reprovado´); end.

Faça um programa que tendo como entrada a altura  e o sexo de uma pessoa , construa um algorítimo que calcule seu peso ideal, utilizando as seguintes fórmulas: para homens: (72.7*h)-58; para mulheres: (62,1*h)-44.7; Program expesoideal; uses crt; var sexo:char;     h,peso:real; begin   writeln(´Calcule seu Peso Ideal´);   write (´Digite seu sexo (M:masculino , F:feminino)´);   readln (sexo);   write (´Entre com a sua altura´);   readln(h)   if sexo=´F´ then     peso:=(62.1*h)-44.7   else     peso:=(72.2*h)-58; writeln(´seu peso ideal é´,peso:2:2); readkey; end.

Estrutura de controle de decisão Case é usada quando se deve tomar uma decisão entre mais de duas opções para uma variável enumerável; Usada só com inteiros, caracteres e variáveis do tipo lógico; Pode ter opção else caso nenhuma das anteriores for aceita; Possui um end no final sem begin;

Estrutura de controle de decisão Formato: case variável of constante1: comandos1; constante2: comandos2; constante3: comandos3; else comando n; end;

Estrutura de controle de decisão Exemplo: case idade of 1,2,3:writeln(‘bebê’); 4..12:writeln(‘criança’); 13..22:writeln(‘adolesc.’); else writeln(’adulto’); end;

Estrutura de controle de repetição while é usado quando o teste deve ser feito no início e não se tem um valor contável determinado; repeat é usado quando o teste deve ser feito no final; for é usado quando a iteração utiliza um evento contável tendo controle automático da variável de controle;

Estrutura de controle de repetição Formato 1: while decisão do comandos; Formato 2: repeat until decisão;

Estrutura de controle de repetição Exemplo 1: ... ct:=1; while ct<11 do begin writeln(‘4*’,ct,’=’,ct*4); ct:=ct+1; end; ...

Estrutura de controle de repetição Exemplo 2: ... ct:=1; repeat writeln(‘4*’,ct,’=’,ct*4); ct:=ct+1; until ct >10; ...

Estrutura de controle de repetição Formato 3: for ct:= v.i. to v.f. do comandos; Formato 4: for ct:= v.i. downto v.f. do

Estrutura de controle de repetição Exemplo 3: for ct:= 1 to 10 do writeln(‘4*’,ct,’=’,ct*4); Exemplo 4: writeln(‘contagem...’) for ct:= 10 downto 1 do writeln(ct);

Transformação de tipos de dados Inteiro para caractere: variável caractere:=chr(variável inteira); Ex: ch:=chr(97); { retorna ‘a’ } Caractere para inteiro: variável inteira:=ord(variável caractere); Ex: varint:=ord(‘A’); { retorna 65 }

Transformação de tipos de dados String para número: val(cadeia,variável numérica,erro); Ex: val(leitura,num,erro); Número para string: str(variável numérica:tam:dec,cadeia); Ex: str(num:10:2,valor);

Tópicos a abordar na seqüência... Tipos estruturados homogêneos: unidimensionais e multidimensionais; Tipos estruturados heterogêneos; Manipulação de cadeias de caracteres; Criação de Novos tipos de dados; Subrotinas (funções e procedimentos); Passagem de parâmetros;

Tipos estruturados homogêneos Conjunto de elementos do mesmo tipo que ocupam uma área contínua de memória e são referenciados através de um nome e um índice; Também denominados de: Vetores, Matrizes, Tabelas, Arrays; Podem ser: Unidimensionais ou Multidimensionais;

Tipos estruturados homogêneos Declaração (unidimensional): var nome:array [vi..vf] of tipo de dados; onde: nome: rótulo dado ao array; vi: valor inicial do array; vf: valor final do array; tipo de dados: tipo de dados dos elementos do array;

Tipos estruturados homogêneos Utilização (unidimensional): utilizar o nome seguido da posição entre colchetes que deseja considerar tanto para atribuição de valores quanto para a recuperação: nome [ posição ]

Tipos estruturados homogêneos Exemplo (unidimensional): ... var notas:array [1..4] of integer; begin... For i:=1 to 4 do read(notas [ i ]);

Tipos estruturados homogêneos Declaração (multidimensional): var nome:array [vi..vf] of tipo de dados; onde: nome: rótulo dado ao array; [vi..vf ]: podem ser substituídos por [vi1..vf1,vi2..vf2,...,viN..vfN] tipo de dados: tipo de dados dos elementos do array;

Tipos estruturados homogêneos Utilização (multidimensional): utilizar o nome seguido das posições entre colchetes que deseja considerar tanto para atribuição de valores quanto para a recuperação. Não omitir nenhuma dimensão; nome [ posições entre vírgulas ]

Tipos estruturados homogêneos Exemplo (multidimensional): var vet:array [1..50,1..4] of real; ... begin... for i:=1 to 50 do for j:=1 to 4 do read(vet [ i , j ]);

Faça um programa que receba um conjunto de 100 valores inteiros colocando-os em um vetor e em seguida mostre na tela o maior dos valores do vetor. program exmaior; const fim=100; var seq: array[1..fim] of integer;     k,maior:integer; begin     for k:=1 to fim do       readln(seq[k]);     maior:=seq[1];     for k:=2 to fim do       if seq[k]>maior then             maior:=seq[k];     writeln(maior); end.

Tipos estruturados heterogêneos Conjunto de elementos de tipos diferentes agrupados por estarem relacionados entre si de acordo com a lógica do programa; Também denominados de: registros ou records; São sempre unidimensionais e podem estar atrelados a declaração de vetores e arquivos;

Tipos estruturados heterogêneos Declaração: Utilizar o nome, “:”, a palavra reservada record seguido da definição dos elementos que o compõe através da declaração destes da mesma forma que as variáveis com um end no final;

Tipos estruturados heterogêneos Declaração: var nome: record nome1:tipo de dados; nome2:tipo de dados; ... nomeN:tipo de dados; end;

Tipos estruturados heterogêneos Exemplo de declaração: var aluno: record ca:longint; nome:string[30]; notafinal:real; end;

Tipos estruturados heterogêneos Utilização: utilizar o nome seguido de “.” (ponto) e o nome do elemento do registro que deseja considerar tanto para atribuição de valores quanto para a recuperação; Não omitir o elemento a referenciar; nome . elemento

Tipos estruturados heterogêneos Exemplo de utilização: ... readln(aluno.ca); readln(aluno.nome); readln(aluno.notafinal); {considerando a declaração do exemplo anterior}

Utilizando tipos estruturados Podemos declarar também: var classe: array [1..40] of record ca:longint; nome:string[30]; nt1,nt2,nt3,nt4:real; end;

Utilizando tipos estruturados E utilizar no programa: ... For i:=1 to 40 do begin readln(classe [ i ].ca); readln(classe [ i ].nome); readln(classe [ i ].nt1); end; ...

Utilizando tipos estruturados Ou ainda: ... For i:=1 to 40 do begin writeln( (classe [ i ].nt1*0.4+ classe [ i ].nt2*0.4+ classe [ i ].nt3*0.2); end; ...

Criação de novos tipos de dados Podemos criar nossos próprios tipos de dados usando: Type nome= declaração; Exemplo: Type aluno = record Nome:string; nt1,nt2:real; end;

Estrutura de um programa Pascal Program Nomedoprograma; uses biblioteca 1,...,biblioteca n; const constante 1,...,constante n; type nome do tipo = declaração do tipo; var lista de variáveis : tipo da variável; declaração das procedures e functions; begin comandos end.

Subrotinas Rotina que executa uma tarefa específica que pode ser: Procedimento (procedure): Não retorna valor à rotina chamadora de forma explícita; Função (function): Retorna um único valor à rotina chamadora de forma explícita;

Estrutura de um programa Pascal Program Nomedoprograma; uses biblioteca 1,...,biblioteca n; const constante 1,...,constante n; type nome do tipo = declaração do tipo; var lista de variáveis : tipo da variável; declaração das procedures e functions; begin comandos end.

Subrotinas (Procedimento) Sintaxe: procedure nome (parâmetros); var variáveis locais; begin comandos; end;

Subrotinas (Procedimento) Exemplo: procedure linha (tamanho:integer); var i:integer; begin for i:= 1 to tamanho do write(´-´); writeln; end;

Subrotinas (função) Sintaxe: function nome (parâmetros):tipo; var variáveis locais; begin comandos; nome:=valor de retorno; end;

Subrotinas (função) Exemplo: function soma (n1,n2:integer):integer; var total: integer; begin total:=n1+n2; soma:=total; end;

Subrotinas (Procedimento) Exercício: alterar a rotina linha para que o símbolo da linha apresentada possa variar:

Subrotinas (Procedimento) Exercício: alterar a rotina linha para que o símbolo da linha apresentada possa variar: procedure linha (tamanho:integer;ch:char); var i:integer; begin for i:= 1 to tamanho do write(ch); writeln; end;

Parâmetros (valor e referência) Valor (ou cópia): As alterações dentro da rotina não alteram as variáveis da rotina chamadora passadas como parâmetro; Referência: As alterações dentro da rotina alteram as variáveis da rotina chamadora passadas (basta usar o var antes da declaração dos parâmetros);

Complementos: Expressões inteira s e reais Aritmética e lógica no pascal: Blaise Pascal (matemático do século XVII); Base Aritmética: Expressão (ou equação) Combinação de: Identificadores Valores Funções numéricas Operadores, que resultam num valor numérico específico,

Complementos: Expressões inteira s e reais Exemplo de expressão: Valor numérico: 2 2+2 Operador: + No pascal uma expressão integra uma instrução de atribuição ou uma instrução lógica.

Complementos: Expressões inteira s e reais Exemplo de instrução aritmética: Resultado : = 2+2; Quando o pascal executa a instrução, o lado direito é calculado e o resultado é atribuído a Resultado. atribuição

Complementos: Expressões inteira s e reais Exemplo de instrução lógica: If Resultado = (2+2) then Uma expressão aritmética que pertence a uma instrução lógica tem como resultado Verdadeira ou Falsa. O valor em Resultado não é alterado. comparação

Complementos: Uso de integer. program m1; Uses Crt; var x, y, z: real; i, j, k: integer; begin clrscr; j:=2; i:= j+1; j:= 3 div j; k:= (1+j) div (3+j); writeln(i, ' ', j, ' ', k);

Complementos: Uso de integer j:=2; x:= j+1; y:= 3 / j; z:= (1+j) div (3+j); Writeln(x:2:2, ' ', y:2:2, ' ', z:2:2); Writeln; writeln('Aperte enter '); readln; end.

Complementos: Hierarquia de operadores Nível 1: Unário (Subtração e Adição) Nível 2: Parênteses Nível 3 Multiplicação e Divisão Nível 4: Adição e Subtração Exemplo: A:= 3*4+5; A:= 3*(4+5);

Complementos: Hierarquia de operadores Nível 1: Unário (Subtração e Adição) Nível 2: Parênteses Nível 3 Multiplicação e Divisão Nível 4: Adição e Subtração Exemplo: A:= 3*4+5; A:= 3*(4+5);

Complementos: Hierarquia de operadores mmmm

Complementos: Hierarquia de operadores Uses Crt; var l1, l2, l3: real; begin clrscr; write('digite l1: '); readln(l1); Write('Digite l2: '); readln(l2); Write('Digite l3: '); readln(l3); if (l1+l2<l3) or (l1+l3<l2) or (l2+l3<l1) then writeln ('triangulo invalido') program triang;

Complementos: Hierarquia de operadores else begin if (l1=l2) and (l1=l3) and (l2=l3) then writeln('equilatero'); if (l1=l2) or (l1=l3) or (l2=l3) then writeln('isosceles'); if (l1<>l2) and (l1<>l3) and (l2<>l3) then writeln('escaleno'); end; Write('pressione enter'); readln; end.

Complementos: Hierarquia de operadores program oplogico; Uses Crt; var Byte1, Byte2, Byte3: byte; begin clrscr; byte1:=77; byte2:= 62; byte3:= byte1 and byte2; writeln('byte1= ', byte1, ' byte2= ',byte2, ' byte3= ',byte3); Writeln; writeln('Aperte enter '); readln; end.