Baixe o app para aproveitar ainda mais
Prévia do material em texto
Aula 2 Conhecendo os comandos do Portugol (retirado da aba Ajuda do Simulador) 1. O "Portugol" utiliza a língua portuguesa para a definição dos comandos. CARACTERÍSTICAS: a) Não faz distinção entre letras maiúsculas e minúsculas. b) Todos os algoritmos começam por inicio e terminam com fim. c) Devemos digitar, apenas, um comando por linha. d) O <Enter> é entendido como fim de comando. e) O sinal de atribuição é a seta ( < ) f) Os símbolos podem ser definidos em qualquer local do algoritmo. Sintaxe inicio Algoritmo fim 2. Tipos de Dados Básicos Tipo Descrição Valores ValorPadrão Inteiro Valores ordinais definidos com quatrobits 2 147 483 648 2 147 483 647 0 Real Valores com parte decimal definidoscom 64 bits 1.7 E 308 1.7 E 308 0.0 Lógico Valores lógicos 1 bit verdadeirofalso falso Carácter Caracteres da Tabela ASCII ASCII(0)ASCII(255) " " (espaço) Texto Conjuntos de caracteres "Sequências de caracteres" "entre aspas" "" (vazio) 3. Tipos de Dados Variáveis DEFINIÇÃO: Variável é todo símbolo, básico de processamento, cujo valor pode ser alterado durante o processamento. Através de sua declaração fica definido o tipo de informação que ela poderá conter. Regras para a declaração de variáveis: a) O nome tem de começar por uma letra, ou pelo caractere undescore (_), e não pode ser uma palavra reservada da linguagem. b) O valor de inicialização tem de ser compatível com tipo de variável definida. c) Se o valor de inicialização for omitido a variável é inicializada com os valores padrões. d) É possível definir mais que uma variável utilizando o caractere virgula (,) e) É possível omitir a palavra variável. Sintaxe variavel [tipo] [nome] < [expressão] variavel [tipo] [nome] < [valor] ,[nome] < [expressão] [tipo] [nome] < [expressão] [tipo] [nome] Exemplos: variavel inteiro idade < 18 variavel real peso < 23.14 logico repetente texto nome < "Antonio" , apelido < "Sousa" caracter sexo 4. Tipos de Dados Constantes DEFINIÇÃO: É todo símbolo cujo valor permanece inalterado durante todo o processamento. Segue as mesmas regras que a definição de variáveis, porém não é possível omitir o valor de inicialização. Sintaxe constante [tipo] [nome] < [valor] constante [tipo] [nome] < [expressão] constante [tipo] [nome] < [valor] ,[nome] < [expressão] Exemplos: constante inteiro meses < 12 constante real pi < 3.14 5. Tipos de Dados Estruturados DEFINIÇÃO: Estruturas homogêneas de dados (Arrays) define um conjunto de dados, todos do mesmo tipo, que podem ser acessados através de um índice. Regras para a declaração de variáveis: a) Se a declaração omitir o termo <variavel/constante> o array é variável. b) A definição do nome obedece ás mesmas regras das variáveis. c) A dimensão tem de ser um valor inteiro ou uma expressão com resultado inteiro. d) As dimensões estão declaradas entre colchetes e separadas por vírgulas. e) São permitidas tantas dimensões quantas as desejadas. f) Se o valor de inicialização for omitido todo o conjunto é inicializado com os valores padrão. g) Se o número de valores for insuficiente os últimos elementos são inicializados com os valores padrão. Sintaxe <variavel/constante> <tipo dados> nome [dimensão] <variavel/constante> <tipo dados> nome [dim1][dim2]...[dimn] <tipo dados> nome [dimensão] <tipo dados> nome[dimensão] < {valor_1, valor_2, . . . , valor_n} Exemplos: constante texto estacoes[4] < {"inverno", "outono", "primavera" , "verão" } variavel inteiro notas[3] < {10,20} real salarios[12] logico bits[8] 6 LER DEFINIÇÃO: Solicita a introdução de valores para as variáveis através do teclado. É possível definir a leitura de várias variáveis desde que estas estejam separadas por virgulas (,). A leitura de uma variável deve ser precedida da sua declaração. Os valores introduzidos, para cada variável, devem ser compatíveis com o tipo definido na declaração da mesma. Sintaxe ler variável ler variavel1, variavel2 Exemplo: inicio texto nome escrever "qual o seu nome:" ler nome escrever "bemvindo ao portugol " , nome fim Resultado esperado no monitor: qual o seu nome: Antônio bemvindo ao portugol Antônio 7 ESCREVER DEFINIÇÃO: Solicita a introdução de valores para as variáveis através do teclado. Numa mesma instrução podemos escrever vários elementos desde que seja separados por vírgulas (,). Existem três símbolos predefinidos no texto: \n mudança de linha (enter) \t tabulação \" caractere aspas (") Sintaxe escrever variável escrever constante escrever "texto" escrever [expressão] escrever variável , "texto" , expressão , . . ., Exemplo: inicio texto nome escrever "qual o seu nome:" ler nome escrever "\nbemvindo ao portugol \t\"" , nome , "\"" fim Resultado esperado no monitor: qual o seu nome: Antônio bemvindo ao portugol Antônio 8 Operadores aritméticos para números inteiros DESCRIÇÃO: Operadores que utilizam exclusivamente variáveis, ou valores inteiros Tipo Descrição + Adição Subtração / Divisão Inteira * Multiplicação % Resto dadivisão inteira ^ Potenciação Exemplo: inicio inteiro i1 < 5 , i2 < 2 escrever "operadores inteiros" escrever "\n" , i1 , " + " , i2 , " = " , i1 + i2 escrever "\n" , i1 , " " , i2 , " = " , i1 i2 escrever "\n" , i1 , " * " , i2 , " = " , i1 * i2 escrever "\n" , i1 , " / " , i2 , " = " , i1 / i2 escrever "\n" , i1 , " % " , i2 , " = " , i1 % i2 escrever "\n" , i1 , " ^ " , i2 , " = " , i1 ^ i2 fim Resultado esperado no monitor: operadores inteiros 5 + 2 = 7 5 2 = 3 5 * 2 = 10 5 / 2 = 2 5 % 2 = 1 5 ^ 2 = 25 9 Operadores aritméticos para números reais DESCRIÇÃO: Operadores que utilizam variáveis, ou valores numéricos em que pelo menos um elemento é do tipo real. Tipo Descrição + Adição Subtração / Divisão Inteira * Multiplicação ^ Potenciação Exemplo: inicio real i1 < 5.0 , i2 < 2.0 escrever "operadores inteiros" escrever "\n" , i1 , " + " , i2 , " = " , i1 + i2 escrever "\n" , i1 , " " , i2 , " = " , i1 i2 escrever "\n" , i1 , " * " , i2 , " = " , i1 * i2 escrever "\n" , i1 , " / " , i2 , " = " , i1 / i2 escrever "\n" , i1 , " ^ " , i2 , " = " , i1 ^ i2 fim Resultado esperado no monitor: operadores real 5.0 + 2.0 = 7.0 5.0 2.0 = 3.0 5.0 * 2.0 = 10.0 5.0 / 2.0 = 2.5 5.0 ^ 2.0 = 25.0 10 Operadores aritméticos para texto DESCRIÇÃO: Operadores que utilizam variáveis, ou valores do tipo texto. São empregados na concatenação de textos. Exemplo: inicio texto nome1 <"Linguagem" texto nome2 <"Algoritmica" texto nome3 nome3 < nome1 + " " + nome2 escrever nome3 fim Resultado esperado no monitor: Linguagem Algoritmica 11 Operadores lógicos DESCRIÇÃO: Os operadores lógicos fornecem com resultado um valor lógico (verdadeiro ou falso). Os operadores E e OU são operadores binários e o NAO é um operador unário. Tipo Descrição E Retorna verdadeiro se ambas as partes foremverdadeiras OU Basta que uma parte seja verdadeira para retornarverdadeiro XOU Retorna verdadeira quando apenas uma das partesfor verdadeira. NAO Inverte o estado, de verdadeiro passa para falso eviceversa Exemplo: inicio logico l1 , l2 l1 < verdadeiro l2 < falso escrever "\n não " , l1 , "\t= " , nao l1 escrever "\n não " , l2 , "\t= " , nao l2 escrever "\n\n" , l1 , " e \t" , l2 , " = " , l1 e l2 escrever "\n" , l1 , " ou \t" , l2 , " = " , l1 ou l2 escrever "\n" , l1 , " xou \t" , l2 , " = " , l1 xou l2 l1 < verdadeiro l2 < verdadeiro escrever "\n\n" , l1 , " e \t" , l2 , " = " , l1 e l2 escrever "\n" , l1 , " ou \t" , l2 , " = " , l1 ou l2 escrever "\n", l1 , " xou \t" , l2 , " = " , l1 xou l2 l1 < falso l2 < falso escrever "\n\n" , l1 , " e \t" , l2 , " = " , l1 e l2 escrever "\n" , l1 , " ou \t" , l2 , " = " , l1 ou l2 escrever "\n" , l1 , " xou \t" , l2 , " = " , l1 xou l2 fim Resultado esperado no monitor: não VERDADEIRO = FALSO não FALSO = VERDADEIRO VERDADEIRO e FALSO = FALSO VERDADEIRO ou FALSO = VERDADEIRO VERDADEIRO xou FALSO = VERDADEIRO VERDADEIRO e VERDADEIRO = VERDADEIRO VERDADEIRO ou VERDADEIRO = VERDADEIRO VERDADEIRO xou VERDADEIRO = FALSO FALSO e FALSO = FALSO FALSO ou FALSO = FALSO FALSO xou FALSO = FALSO 12 Operadores relacionais DESCRIÇÃO: Os operadores lógicos fornecem com resultado um valor lógico (verdadeiro ou falso) Se os operandos forem numéricos a comparação é feita com base no seu valor Se os operadores forem texto a comparação é feita lexicograficamente Se os operadores forem lógicos apenas estão disponíveis a igualdade e a diferença Tipo Descrição = Igual =/= Diferente > Maior >= Maior ou igual < Menor <= Menor ouigual Exemplo: inicio real l1 < 5.0 , l2 < 3 escrever "\n" , l1 , " = " , l2 , "\t= " , l1 = l2 escrever "\n" , l1 , " =/= " , l2 , "\t= " , l1 =/= l2 escrever "\n" , l1 , " > " , l2 , "\t= " , l1 > l2 escrever "\n" , l1 , " >= " , l2 , "\t= " , l1 >= l2 escrever "\n" , l1 , " < " , l2 , "\t= " , l1 < l2 escrever "\n" , l1 , " <= " , l2 , "\t= " , l1 <= l2 fim Resultado esperado no monitor: 5.0 = 3.0 = FALSO 5.0 =/= 3.0 = VERDADEIRO 5.0 > 3.0 = VERDADEIRO 5.0 >= 3.0 = VERDADEIRO 5.0 < 3.0 = FALSO 5.0 <= 3.0 = FALSO 13 Seleção SE DESCRIÇÃO: Seleção de instruções. A condição deve ser uma variável lógica, ou uma expressão com resultado lógico (operadores lógicos, ou relacionais). Sintaxe se [condição] então [instruções] senão [instruções] fimSe OU se [condição] então [instruções] fimSe Exemplo: inicio inteiro numero, r escrever " introduza um numero: " ler numero r < numero % 2 se r = 0 entao escrever "numero par" senao escrever "numero impar" fimse fim Resultado esperado no monitor: introduza um numero: 5 numero impar 14 Seleção Escolhe Caso DESCRIÇÃO: Esta estrutura compara a expressão_0 com as restantes expressões (expressão_1 . . . expressão_n), e se a comparação for positiva executa as instruções do Caso e sai. A estrutura tem um caso por defeito (opcional) é executada quando todas as outras condições falharem. Sintaxe Escolhe [expressão_0] Caso [Expressão_1o],. . .,[Expressão_1n],: [instruções] . . . . . . . . . . . Caso [Expressão_no],. . .,[Expressão_nn],: [instruções] Defeito: [instruções] FimEscolhe Exemplo: inicio caracter sexo escrever "Qual o seu sexo :" ler sexo escrever "Olá " escolhe sexo caso "m" : escrever "Homem" caso "f" : escrever "Mulher" defeito : escrever "Sexo indefinido" fimescolhe escrever ", bemvindo ao portugol" fim Resultado esperado no monitor: Qual o seu sexo ?: m Olá Homem, bemvindo ao Portugol 15 Repetição Enquanto DESCRIÇÃO: Repete as instruções enquanto a condição for verdadeira Sintaxe enquanto [condição] faz [intruções] fimEnquanto Exemplo: inicio inteiro contador contador < 0 enquanto contador < 10 faz escrever contador , "\t" contador < contador + 1 fimenquanto fim Resultado esperado no monitor: 0 1 2 3 4 5 6 7 8 9 16 Repetição Para DESCRIÇÃO: Repete as instruções controlado por uma variável numérica que percorre os valores, entre dois limites, utilizando o passo definido. Caso o passo não seja definido, o passo é de mais ou menos uma unidade de forma a poder percorrer o intervalo entre o valor inicial, e o final de forma crescente, ou decrescente. Sintaxe para [variável numerica] de [valor inicial] ate [valor final] passo [valor de separação] [intruções] próximo OU para [variável numerica] de [valor inicial] ate [valor final] [intruções] próximo Exemplo: inicio inteiro contador para contador de 0 ate 9 passo 1 escrever contador , "\t" proximo fim Resultado esperado no monitor: 0 1 2 3 4 5 6 7 8 9 17 Repete DESCRIÇÃO: repete as instruções até que a condição seja verdadeira. Sintaxe repete [instruções] até[condição] Exemplo: Solicita a introdução de um mês enquanto o usuário não digitar um número válido ( entre 1 e 12) inicio inteiro mes repete escrever "introduza um mes :" ler mes ate mes > 0 e mes < 13 escrever "\nmês introduzido :" , mes fim Resultado esperado no monitor: introduza um mês :10 introduza um mês :20 introduza um mês :5 mês introduzido :5 18 FAZ DESCRIÇÃO: repete as instruções até que a condição seja falsa. Sintaxe Faz [instruções] Enquanto[condição] Exemplo: Solicita a introdução de um mês enquanto o usuário não digitar um número válido ( entre 1 e 12) inicio inteiro mes faz escrever "introduza um mês :" ler mes enquanto mes < 0 ou mes > 13 escrever "\nmês introduzido :" , mes fim Resultado esperado no monitor: introduza um mês :10 introduza um mês :20 introduza um mês :5 mês introduzido :5 19 Funções de Biblioteca a) Aleatório: retorna um número real entre 0 e 1 Sintaxe real aleatorio() Exemplo: inicio inteiro numero , contador escrever "chave de totoloto :" para contador de 1 ate 6 numero < aleatorio ( ) * 47 + 1 escrever numero , "\t" proximo fim Resultado esperado no monitor: chave de totoloto :41 16 13 2 6 22 b) Funções com argumentos (trigonométricas): Tipo Descrição SEN Seno COS Coseno TAN Tangente CTG Cotangente ASEN Arco seno ACOS Arco coseno ATAN Arco tangente ACTG Arco cotangente SENH Seno hiperbólico COSH Coseno hiperbólico TANH Tangentehiperbólica CTGH Cotangentehiperbólica Exemplo: inicio real angulo < 0.0 escrever "\nseno (" , angulo , ") \t\t= " , sen ( angulo ) escrever "\ncoseno (" , angulo , ") \t\t= " , cos ( angulo ) escrever "\ntangente(" , angulo , ") \t\t= " , tan ( angulo ) escrever "\ncotangente(" , angulo , ") \t= " , ctg ( angulo ) escrever "\n\narco seno(" , angulo , ") \t\t= " , asen ( angulo ) escrever "\narco coseno(" , angulo , ") \t= " , acos ( angulo ) escrever "\narco tangente(" , angulo , ") \t= " , atan ( angulo ) escrever "\narco cotangente(" , angulo , ") \t= " , actg ( angulo ) escrever "\n\nseno hiperbólico (" , angulo , ") \t\t= " , senh ( angulo ) escrever "\ncoseno hiperbólico (" , angulo , ") \t= " , cosh ( angulo ) escrever "\ntangente hiperbólico(" , angulo , ") \t= " , tanh ( angulo ) escrever "\ncotangente hiperbólico(" , angulo , ") \t= " , ctgh ( angulo ) fim Resultado esperado no monitor: seno (0.0) = 0.0 coseno (0.0) = 1.0 tangente(0.0) = 0.0 cotangente(0.0) = Infinity.0 arco seno(0.0) = 0.0 arco coseno(0.0) = 1.5707963267948966 arco tangente(0.0) = 0.0 arco cotangente(0.0) = Infinity.0 seno hiperbólico (0.0) = 0.0 coseno hiperbólico (0.0) = 1.0 tangente hiperbólico(0.0) = 0.0 cotangente hiperbólico(0.0) = Infinity.0 c) Funções matemáticas: Tipo Descrição EXP Exponencial (e^x) ABS Valor absoluto RAIZ Raiz Quadrada LOG Logaritmo base 10 LN Logaritmo base "e" INT Parte inteira de umnúmero real FRAC Parte fracionária de umnúmero real ARRED Arredondamento de umnúmero real Exemplo: inicio real n1 < 123.6 real n2 < 1.0 /* o que vem a seguir é considerado como comentário escrever "\nExp (" , n2 , ")\t= " , exp ( n2 ) escrever "\nABS (" , n1 , ")\t=" , abs ( n1 ) escrever "\nRaiz (" , n2 * 4 , ")\t= " , raiz ( n2 * 4 ) escrever "\nLog (" , n2 * 1000 , ")\t= " , log ( n2 * 1000 ) escrever "\nLn (" , n2 * 1000 , ")\t= " , ln ( n2 * 1000 ) escrever "\nInt (" , n1 , ")\t= " , int ( n1 ) escrever "\nfrac (" , n1 , ")\t= " , frac ( n1 ) fim do comentário*/ escrever "\nArred (" , n1 , ")\t= " , arred ( n1 ) fim Resultado esperado no monitor (eliminando /* e */): Exp (1.0) = 2.7182818284590455 ABS (123.6) = 123.6 Raiz (4.0) = 2.0 Log (1000.0) = 3.0 Ln (1000.0) = 6.907755278982137 Int (123.6) = 123 frac (123.6) = 6 Arred (123.6) = 123
Compartilhar