Laboratório de Linguagens de Programação Prof. Andrei Rimsa Álvares. Trabalho Prático I. $ /usr/bin/beep f l 1000
|
|
- Maria Barreiro Pais
- 5 Há anos
- Visualizações:
Transcrição
1 1. Objetivo Laboratório de Linguagens de Programação Trabalho Prático I O objetivo desse trabalho é desenvolver um interpretador para uma linguagem de programação fictícia chamada DTS (Digital Tone Synthesizer). Essa linguagem é capaz de tocar notas musicais no autofalante de beeps do computador com diversas durações. Com isso é possível emular músicas através dessa interface. A linguagem é capaz de tocar uma nota com certa duração, pausar por um determinado tempo, usar expressões e variáveis inteiras, comandos condicionais e de repetição. 2. Contextualização O beep do PC pode ser acessado por chamadas de sistema tanto no Linux quanto no Windows. Já o Macintosh não possui um autofalante de beeps, sendo necessário usar formatos de músicas como midi ou mp3. No Linux, existe a ferramenta beep (/usr/bin/beep) capaz de executar uma nota definindo sua frequência (-f) e duração (-l). Por exemplo, para tocar a nota Lá (A), frequência 440.0Hz, por 1 segundo (1000ms), basta executar o seguinte comando: $ /usr/bin/beep f l 1000 Esse comando será usado pelo interpretador para executar comandos no Linux. Uma função em C e uma classe em Java para esse propósito podem ser encontradas na pasta do trabalho. Tabela 1. Frequências das doze (12) notas no 4 grau. Nota Frequência Frequência Nome Nota (Hz) (Hz) Nome C Dó F# Fá sustenido C# Dó sustenido G Sol D Ré G# Sol sustenido D# Ré sustenido A Lá E Mi A# Lá sustenido F Fá B Si Figura 1. Partitura da música Cai Cai Balão.
2 As frequências das 12 notas musicais podem ser encontradas na Tabela 1. O beep é capaz de tocar apenas uma nota por vez, portanto a linguagem DTS não suporta acordes (combinações de notas). Por exemplo, a música Cai Cai Balão cuja partitura é mostrada na Figura 1 pode ser expressa na linguagem DTS conforme programa a seguir, cujo tempo musical é de 400ms: tempo 400; musica "Cai Cai Balão"; faca i = 1; repetir (i =< 2); faca tocar(g, 1) : "Cai,"; tocar(g, 1.) : "cai,"; + meia tocar(f, %2) : "ba"; // fa colcheia se (j =< 2); faca tocar(e, 1) : "lao."; // fa seminima senao tocar(e, 1) : "lao"; // fa minima i = i + 1; tocar(g, 1) : "na"; tocar(a, 1) : "ru"; tocar(g, 1) : "a"; tocar(f, 1) : "do"; tocar(e, 1) : "sa"; tocar(d, 2) : "bao"; pausar(1); // la seminima // fa seminima // mi seminima // re minima // intervalo j = 1; repetir (j =< 3); faca tocar(d, %2) : "Nao"; // re colcheia tocar(e, %2) : "cai"; // mi colcheia se (j =< 2); faca tocar(f, 1) : "nao."; // fa seminima senao tocar(f, 2) : "nao."; // fa minima j = j + 1; tocar(g, 1) : "Cai"; tocar(a, 1) : "a"; tocar(g, 1) : "qui"; tocar(f, 1) : "na"; tocar(e, 1) : "mi"; tocar(d, 1) : "nha"; tocar(c, 2) : "mao!"; cai-cai-balao.dts // la seminima // fa seminima // mi seminima // re seminima // do minima
3 3. Descrição Um programa DTS possui as seguintes características: Um tempo opcional em milissegundos que deve ser informado uma única vez antes da música. Caso não seja especificado, deve-se considerar 500ms. o Ex.: tempo = 400ms; Todo programa deve obrigatoriamente conter a seção musica com seu respectivo nome, onde comandos são dados entre as palavrasreservadas faca e. o Ex.: musica "cai cai balão"; faca... Comentários de única linha, estilo C. o Ex.: int i = 1; // iniciar variável i com valor 1 Doze (12) notas musicais com letras maiúsculas e símbolo #. o Ex.: A ou C# Duração como um número que indica a quantidade de tempo em três formatos: número simples (tempo * numero), número seguido de ponto (tempo * numero * 1.5) e número prefixado com uma porcentagem (tempo / numero). o Ex: 1, 2., %4 Literais inteiras. o Ex: 5 Literais strings. o Ex: "cai" Variáveis que só podem ter um única letra minúscula. o Ex.: a ou v Expressões inteiras. o Ex: x + 1 Além disso, um programa DTS é formado por cinco (5) tipos de comandos distintos: Tocar: recebe uma nota e uma duração e tem o efeito de tocar essa nota com essa duração no autofalante de beep. Opcionalmente, podese associar uma palavra a essa nota. Deve terminar com ponto-vírgula. o Ex.: tocar(a#, 2); // tocar lá sustenido em 2 tempos o Ex: tocar(g, 1) : "cai"; // tocar sol em 1 tempo com texto "cai" Pausar: recebe uma duração e tem o efeito de interromper momentaneamente a música por essa duração. Não pode ter uma palavra associada. Deve terminar com ponto-vírgula. o Ex: pausar(1); // interromper por 1 tempo Atribuir: atribuir uma expressão aritmética simples (sempre com somente dois operandos) a uma variável. Deve terminar com pontovírgula. o Ex.: x = x+ 1;
4 Se: recebe uma expressão booleana entre parênteses e executa os comandos entre faca e se avaliar em verdadeiro. Opcionalmente pode incluir um bloco senao, que executa os comandos se a expressão avaliar em falso. o Ex: se (x == 1); faca... o Ex: se (x < 0); faca... senão... Repetir: recebe uma expressão booleana entre parênteses e executa os comandos entre faca e enquanto a expressão avaliar em verdadeiro. Ao avaliar em falso deve-se continuar a execução do programa executando o primeiro comando imediatamente após esse. o Ex.: repetir (x < 5); faca... A gramática para as expressões lógicas e inteiras é dada na gramática estendida de Backus-Naur Form (EBNF): <bool-expr> ::= <term> <rel_op> <term> <rel_op> ::= ==!= < > =< >= <int-expr> ::= <term> [ <arith_op> <term> ] <arith_op> ::= + - * / <term> 4. Instruções ::= <var> <num> Deve ser desenvolvido um interpretador em linha de comando que recebe um programa-fonte na linguagem DTS como argumento e executa os comandos especificados pelo programa. Os comandos Tocar e Pausar, além de suas respectivas funções, eles devem imprimir na saída do terminal conforme a seguir: Por exemplo, para o programa cai-cai-balao.dts deve-se tocar a música no beep e mostrar no terminal : $ dtsi cai-cai-balao.dts (G, 400.0) -> Cai, (G, 600.0) -> cai, (F, 200.0) -> ba (E, 400) -> lao. (G, 400) -> Cai, (G, 600) -> cai, (F, 200) -> ba (E, 400) -> lao (G, 400) -> na (A, 400) -> ru (G, 400) -> a (F, 400) -> do (E, 400) -> sa (D, 800) -> bao. (400) (D, 200) -> Nao (E, 200) -> cai (F, 400) -> nao. (D, 200) -> Nao (E, 200) -> cai (F, 400) -> nao. (D, 200) -> Nao (E, 200) -> cai (F, 800) -> nao. (G, 400) -> Cai (A, 400) -> a (G, 400) -> qui (F, 400) -> na (E, 400) -> mi (D, 400) -> nha (C, 800) -> mao!
5 O programa deverá abortar sua execução, em caso de qualquer erro léxico, sintático ou semântico, indicando uma mensagem de erro. As mensagens de erro são padronizadas indicando o número da linha (com no mínimo 2 dígitos) onde ocorreram: Tipo de Erro Léxico Sintático Semântico Mensagem Lexema inválido [lexema] Fim de arquivo inesperado Lexema não esperado [lexema] Fim de arquivo inesperado Operação inválida Exemplo de mensagem de erro: 5. Avaliação $ dtsi erro.dts 03: Lexema não esperado [;] O trabalho deve ser feito em grupo de até dois alunos, sendo esse limite superior estrito. O trabalho será avaliado em 15 pontos, onde essa nota será multiplicada por um fator entre 0.0 e 1.0 para compor a nota de cada aluno individualmente. Esse fator poderá estar condicionado a apresentações presenciais a critério do professor. Trabalhos copiados, parcialmente ou integralmente, serão avaliados com nota ZERO, sem direito a contestação. Você é responsável pela segurança de seu código, não podendo alegar que outro grupo o utilizou sem o seu consentimento. 6. Submissão O trabalho deverá ser submetido até as 23:55 do dia 05/10/2015 (segunda-feira) via sistema acadêmico (Moodle) em pasta específica. Não serão aceitos, em hipótese alguma, trabalhos enviados por ou por quaisquer outras fontes.
6 Class Diagram0 2015/10/02 powered by Astah pkg Lexema + type : Integer + token : String AnalisadorLexico - arquivo : FILE - linha : int - tabelasimbolos : Map<String,Integer> + AnalisadorLexico(nomeArquivo : String) + getlinha() : int + nexttoken() : Lexema - iniciartabelasimbolos() : void - consultartabelasimbolos(string : int) : Integer AnalisadorSintatico - lexico : AnalisadorLexico - atual : Lexema + AnalisadorSintatico(lexico : AnalisadorLexico) + init() : BlocoComandos - matchtoken(type : Integer) : void - procprogram() : BlocoComandos - proctempo() : TempoComando - proccomandos() : BlocoComandos - proccomando() : Comando - proctocar() : TocarComando - procpausar() : PausarComando - procatribuir() : AtribuirComando - procse() : SeComando - procrepetir() : RepetirComando - procexprbool() : ExprLogica - procexprint() : ExprInteira - proctermo() : Termo - procoprel() : RelOp - procoparit() : ArithOp - procnota() : Nota - procduracao() : double - procvar() : Variavel - procnum() : ConstInt - procstring() : String Comando Termo Expressao<E> <<enum>> Nota + La : double + LaSustenido : double + Si : double + Do : double + DoSustenido : double + Re : double + ReSustenido : double + Mi : double + Fa : double + FaSustenido : double + Sol : double + SolSustenido : double + nome() : String + frequencia() : double BlocoComandos TocarComando - comandos : List<Comando> - nota : Nota - duracao : double + BlocoComandos() : void - palavra : String + adicionarcomando(c : Comando) : void + TocarComando(nota : Nota, duracao : double, palavra : String) TempoComando AtribuirComando - tempo : ConstInt - var : Variavel - expr : ExprInteira Tempo + TempoComando(tempo : ConstInt) + AtribuirComando(var : Variavel, expr : ExprInteira) - tempo : int + settempo(tempo : int) : void + gettempo() : int + getvalor() : int + avaliar() : E <<Integer>> PausarComando ConstInt Variavel ExprInteira - tempo : ConstInt - valor : int - valor : int + avaliar() : Integer + PausarComando(tempo : ConstInt) + ConstInt(valor : int) + Variavel() + getvalor() : int + getvalor() : int + setvalor(valor : int) : void RepetirComando ExprIntSimples ExprIntDupla - expr : ExprLogica - termo : Termo - termo1 : Termo - comandos : BlocoComandos - op : ArithOp + ExprIntSimples(termo : Termo) + RepetirComandos(expr : ExprLogica, comandos : BlocoComandos) - termo2 : Termo + avaliar() : Integer + ExprIntDupla(termo1 : Termo, op : ArithOp, termo2 : Termo) + avaliar() : Integer <<Boolean>> ExprLogica + avaliar() : Boolean ExprLogicaDupla - termo1 : Termo - op : RelOp - termo2 : Termo + ExprLogicaDupla(termo1 : Termo, op : RelOp, termo2 : Termo) + avaliar() : Boolean SeComando - expr : ExprLogica - comandosse : BlocoComandos - comandossenao : BlocoComandos + SeComando(expr : ExprLogica, comandosse : BlocoComandos, comandossenao : BlocoComandos) <<enum>> ArithOp <<enum>> RelOp - Mais : int - Menos : int - Multiplicacao : int - Divisao : int - Igual : int - Diferente : int - Menor : int - MenorIgual : int - Maior : int - MaiorIgual : int
Laboratório de Linguagens de Programação Prof. Andrei Rimsa Álvares. Trabalho Prático I
. Objetivo Trabalho Prático I O objetivo desse trabalho é desenvolver um interpretador para uma linguagem de programação fictícia chamada MiniLambda. Essa linguagem é capaz de executar operações sobre
Leia maisLaboratório de Linguagens de Programação Prof. Andrei Rimsa Álvares. Trabalho Prático I
1. Objetivo Laboratório de Linguagens de Programação Trabalho Prático I O objetivo desse trabalho é desenvolver um interpretador para uma linguagem de programação fictícia baseada em Perl: MiniPerl. Ela
Leia maisLaboratório!de!Linguagens!de!Programação! Prof.!Andrei!Rimsa!Álvares! Trabalho(Prático(I(
LaboratóriodeLinguagensdeProgramação Prof.AndreiRimsaÁlvares Trabalho(Prático(I( 1.(Objetivo( O objetivo desse trabalho é desenvolver um interpretador para uma linguagem de programação fictícia chamada
Leia maisLaboratório!de!Linguagens!de!Programação! Prof.!Andrei!Rimsa!Álvares! Trabalho(Prático(I(
LaboratóriodeLinguagensdeProgramação Prof.AndreiRimsaÁlvares 1.(Objetivo( Trabalho(Prático(I( O objetivo desse trabalho é desenvolver um interpretador para uma linguagemdeprogramaçãofictíciachamadaminilab.essalinguagemécapazde
Leia maisTrabalho Prático I. A seguir é dado um exemplo de utilização da linguagem que simula um objeto que mantém informações de um arranjo de inteiros:
. Objetivo Trabalho Prático I O objetivo desse trabalho é desenvolver um interpretador para uma nova linguagem de programação que embute ideias de programação orientada a objetos: SmallOO. Ela possui quatro
Leia maisEstruturas de seleção. Prof.: Jesus
Estruturas de seleção Prof.: Jesus Estrutura de seleção Etapa em um programa onde uma condição é avaliada e, dependendo do resultado, diferentes ações podem ser realizadas Seleção simples Uma ou mais ações
Leia maisIdentificadores Nome de variáveis, constantes, métodos, etc...
IV.2 Aspectos Léxicos Convencionais Classes de símbolos Genéricos Token genérico / Lei de formação bem definida Podem possuir limitações de tamanho e/ou valor Possuem valor semântico o token deve ser acompanhado
Leia maisProgramação de Computadores I Introdução ao C PROFESSORA CINTIA CAETANO
Programação de Computadores I Introdução ao C PROFESSORA CINTIA CAETANO Introdução Criada em 1972, por Dennis Ritchie; Centro de Pesquisas da Bell Laboratories; Para utilização no S.O. UNIX; C é uma linguagem
Leia maisAlgoritmos e Programação
Algoritmos e Programação Aula 5 Estruturas de Repetição Profa. Marina Gomes marinagomes@unipampa.edu.br 26/04/2017 Engenharia de Computação - Unipampa 1 Aula de Hoje Estrutura de repetição Comando for
Leia maisDescrição da Linguagem DECAF
Descrição da Linguagem DECAF Eduardo Ferreira dos Santos 8 de junho de 2017 Abstract The project for the course is to write a compiler for a language called Decaf. Decaf is a simple imperative language
Leia maisNoções de algoritmos - Aula 1
Noções de algoritmos - Aula 1 Departamento de Física UFPel Definição de algoritmo Sequência ordenada e finita de operações para a realização de uma tarefa. Tarefa: Experimento de Física I. Passo 1: Reunir
Leia mais4. Constantes. Constantes pré-definidas
4. Constantes Constantes pré-definidas O PHP possui algumas constantes pré-definidas, indicando a versão do PHP, o Sistema Operacional do servidor, o arquivo em execução, e diversas outras informações.
Leia maisAlgoritmos I Aula 13 Linguagem de Programação Java
Algoritmos I Aula 13 Linguagem de Programação Java Professor: Max Pereira http://paginas.unisul.br/max.pereira Ciência da Computação IDE Eclipse IDE (Integrated development environment) Criar um projeto
Leia maisIV.2 Aspectos Léxicos Convencionais
IV.2 Aspectos Léxicos Convencionais Classes de símbolos Genéricos - Token genérico / Lei de formação bem definida - Limitações de tamanho e/ou valor - Possuem valor semântico o token deve ser acompanhado
Leia maisC A P I T U L O 2 S I N T A X E B Á S I C A - V A R I Á V E I S E C O N S T A N T E S E M P H P
C A P I T U L O 2 S I N T A X E B Á S I C A - V A R I Á V E I S E C O N S T A N T E S E M P H P SINTAXE BÁSICA Neste capítulo vamos apresentar a estrutura básica do PHP. Para iniciar a construção de um
Leia maisDescrição da Linguagem DECAF
Descrição da Linguagem DECAF Eduardo Ferreira dos Santos 24 de maio de 2017 Abstract The project for the course is to write a compiler for a language called Decaf. Decaf is a simple imperative language
Leia maisIntrodução a Programação. Curso: Sistemas de Informação Programação I José R. Merlin
Introdução a Programação Curso: Sistemas de Informação Programação I José R. Merlin Programas Programas são instruções para o computador executar uma tarefa Estas instruções seguem uma lógica Lógica: modo
Leia maisAula 03 Introdução à Java. Disciplina: Fundamentos de Lógica e Algoritmos Prof. Bruno Gomes
Aula 03 Introdução à Java Disciplina: Fundamentos de Lógica e Algoritmos Prof. Bruno Gomes http://www3.ifrn.edu.br/~brunogomes Agenda da Aula Representação de Algoritmos em Pseudocódigo: Tipos de Dados;
Leia maisBacharelado em Ciência e Tecnologia Processamento da Informação. Equivalência Portugol Java. Linguagem Java
Linguagem Java Objetivos Compreender como desenvolver algoritmos básicos em JAVA Aprender como escrever programas na Linguagem JAVA baseando-se na Linguagem Portugol aprender as sintaxes equivalentes entre
Leia mais08/05/2012. Tipos de dados. Tipos de dados. Elementos Básicos. Tipos de dados. Elementos Básicos Tipos de dados. Dados e seus tipos:
INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA DA PARAÍBA CAMPUS CAMPINA GRANDE 1 2 Elementos Básicos Tipos de dados Dados e seus tipos: Computadores lidam com diversos tipos de dados: numéricos,
Leia maisProfessor Mauricio Lederer Algoritmos. Entrada e saída de dados
Entrada Algoritmos Entrada e saída de dados Muitas vezes, um algoritmo, para que possa trabalhar, precisa de dados de entrada informados pelo usuário, porque nem sempre é necessário ter esse tipo de dados.
Leia maisALGORITMOS E APLICAÇÕES. FATEC IPIRANGA ADS Noturno 1º semestre de 2012 Prof. Luiz Carlos de Jesus Junior
ALGORITMOS E APLICAÇÕES FATEC IPIRANGA ADS Noturno 1º semestre de 2012 Prof. Luiz Carlos de Jesus Junior Formato Básico do Pseudocódigo Tipos de dados O VisuAlg prevê quatro tipos de dados: inteiro, real,
Leia maisTeoria e Implementação de Linguagens Computacionais. Especificação do projeto da disciplina (2006.1) Versão de 23/08/2006.
Teoria e Implementação de Linguagens Computacionais Especificação do projeto da disciplina (2006.1) Versão de 23/08/2006 André Santos Introdução O objetivo do projeto é proporcionar aos alunos da disciplina
Leia maisLINGUAGEM C: COMANDOS DE REPETIÇÃO
LINGUAGEM C: COMANDOS DE REPETIÇÃO Prof. André Backes ESTRUTURAS DE REPETIÇÃO Uma estrutura de repetição permite que uma sequência de comandos seja executada repetidamente, enquanto determinadas condições
Leia maisProgramação I PRG Engenharia de Telecomunicações 2ª Fase Professor: Cleber Jorge Amaral
Programação I PRG29002 Engenharia de Telecomunicações 2ª Fase Professor: Cleber Jorge Amaral 2016-1 Revisão da aula anterior Linguagens compiladas vs interpretadas Para que servem as bibliotecas? O que
Leia maisLição 4 Fundamentos da programação
Lição 4 Fundamentos da programação Introdução à Programação I 1 Objetivos Ao final desta lição, o estudante será capaz de: Identificar as partes básicas de um programa em Java Reconhecer as diferenças
Leia maisSintaxe e Semântica. George Darmiton da Cunha Cavalcanti.
Sintaxe e Semântica George Darmiton da Cunha Cavalcanti (gdcc@cin.ufpe.br) Tópicos Introdução O problema de descrever a sintaxe Métodos formais para descrever a sintaxe Gramáticas de atributos Descrevendo
Leia maisProgramação em C. Variáveis e Expressões. Universidade Federal do Rio Grande do Norte Departamento de Engenharia de Computação e Automação
Universidade Federal do Rio Grande do Norte Departamento de Engenharia de Computação e Automação Programação em C Variáveis e Expressões DCA0800 Algoritmos e Lógica de Programação Heitor Medeiros Florencio
Leia maisIntrodução à Linguagem de Programação C: Variáveis, Constantes, Expressões, Atribuição, Tipos de dados, Entrada e Saída de Dados
Introdução à Linguagem de Programação C: Variáveis, Constantes, Expressões, Atribuição, Tipos de dados, Entrada e Saída de Dados Disciplina de Programação de Computadores I Universidade Federal de Ouro
Leia maisIntrodução à Programação
Introdução à Programação Linguagens de Programação: sintaxe e semântica de linguagens de programação e conceitos de linguagens interpretadas e compiladas Engenharia da Computação Professor: Críston Pereira
Leia maisDiagramas Sintáticos
Diagramas Sintáticos Centro de Cálculo Instituto Superior de Engenharia de Lisboa Pedro Alexandre Pereira (palex@cc.isel.ipl.pt) Classe pública com método main Cada classe X pública é declarada num ficheiro
Leia maisComputação L2. Linguagem C++ Observação: Material Baseado na Disciplina Computação Eletrônica.
Computação L2 Linguagem C++ ovsj@cin.ufpe.br Observação: Material Baseado na Disciplina Computação Eletrônica. Alfabeto São os símbolos ( caracteres ) permitidos na linguagem: Letras (maiúsculas e minúsculas);
Leia maisAnálise de Programação
Análise de Programação Fundamentos da Linguagem de Programação Java Prof. Gilberto B. Oliveira Variáveis Atributos: Variáveis Declaradas fora de um método, sem o modificador static Variáveis membro ou
Leia maisAula 8 Comandos de Seleção
Aula 8 Comandos de Seleção Algoritmos e Programação de Computadores Profs: Ronaldo Castro de Oliveira ronaldo.co@ufu.br Anilton Joaquim da Silva anilton@ufu.br 1 Introdução Até agora não aprendemos a dizer
Leia maisPROGRAMAÇÃO ESTRUTURADA E ORIENTADA A OBJETOS
INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA DO RIO GRANDE DO NORTE PROGRAMAÇÃO ESTRUTURADA E ORIENTADA A OBJETOS Docente: Éberton da Silva Marinho e-mail: ebertonsm@gmail.com eberton.marinho@gmail.com
Leia maisAula 6 Oficina de Programação Estruturas Condicionais no C. Profa. Elaine Faria UFU
Aula 6 Oficina de Programação Estruturas Condicionais no C Profa. Elaine Faria UFU - 2017 Estrutura Condicional Simples Algoritmo se () entao instrução fimse A instrução só será executada se
Leia maisEstruturas de seleção. Prof.: Jesus
Estruturas de seleção Prof.: Jesus Estrutura de seleção Etapa em um programa onde uma condição é avaliada e, dependendo do resultado, diferentes ações podem ser realizadas Seleção simples Uma ou mais ações
Leia maisFundamentos de Programação. Turma CI-240-EST. Josiney de Souza.
Fundamentos de Programação Turma CI-240-EST Josiney de Souza josineys@inf.ufpr.br Agenda do Dia Aula 8 (30/09/15) Comentários sobre exercícios propostos Desvio condicional Simples Composto Exercícios Propostos
Leia maisConceitos básicos de programação
Constantes class Exemplo { static void Main() { float fahr, celsius; int lower, upper, step; lower = 0; /* limite inferior da tabela de temperaturas */ upper = 300; /* limite superior */ step = 20; /*
Leia maisProgramação Orientada a Objetos II Java Segunda aula. Prof. Rogério Albuquerque de Almeida
Programação Orientada a Objetos II Java Segunda aula 1 Programação Orientada a Objeto II Tipos de Dados e Variáveis Operadores Operadores aritméticos Operadores relacionais Operadores lógicos Operadores
Leia maisBacharelado em Ciência e Tecnologia Processamento da Informação. Equivalência Portugol Java. Linguagem Java
Linguagem Java Objetivos????? ADAPTAR O TEXTO ABAIXO????? Aprender a sintaxe da Estrutura de Repetição ENQUANTO-FAÇA na linguagem PORTUGOL Aprender a resolver problemas que requeiram o uso de ESTRUTURAS
Leia maisBacharelado em Ciência e Tecnologia Processamento da Informação. Equivalência Portugol Java. Linguagem Java
Linguagem Java Objetivos????? ADAPTAR O TEXTO ABAIXO????? Aprender a sintaxe da Estrutura de Repetição ENQUANTO-FAÇA na linguagem PORTUGOL Aprender a resolver problemas que requeiram o uso de ESTRUTURAS
Leia maisProgramação Estruturada
Programação Estruturada Introdução à linguagem C Professores Emílio Francesquini e Carla Negri Lintzmayer 2018.Q3 Centro de Matemática, Computação e Cognição Universidade Federal do ABC Programação estruturada
Leia maisLinguagem Java - Introdução
Linguagem Java - Introdução Identificadores válidos resultado teste01 _numeroclientes $fortuna Identificadores Identificadores inválidos 101dalmatas 34 #x Palavras reservadas abstract assert*** boolean
Leia maisSintática: como é escrito cada elemento da linguagem de programação.
4ª. AULA Sintaxe e Semântica Para que uma linguagem de programação atenda aos requisitos especificados de forma eficiente, ela deve ser escrita de forma única (não ambígua). Isso envolve a definição: Sintática:
Leia maisFamiliarização com a ferramenta JavaCC
Ficha nº 2 Familiarização com a ferramenta JavaCC Estrutura do ficheiro JavaCC O JavaCC utiliza um ficheiro com a extensão.jj, onde são descritos, pelo utilizador, o léxico e a sintaxe da linguagem e gera
Leia maisProgramação de Computadores III
Programação de Computadores III Pseudocódigo e Estruturas Básicas de Controle Professor Leandro Augusto Frata Fernandes laffernandes@ic.uff.br Material disponível em http://www.ic.uff.br/~laffernandes/teaching/2013.1/tcc-00.157
Leia maisAula 4: Introdução à Linguagem C++
CI208 - Programação de Computadores Aula 4: Introdução à Linguagem C++ Prof. MSc. Diego Roberto Antunes diegor@inf.ufpr.br www.inf.ufpr.br/diegor Universidade Federal do Paraná Setor de Ciências Exatas
Leia maisBacharelado em Ciência e Tecnologia Processamento da Informação. Equivalência Portugol Java. Linguagem Java
Linguagem Java Objetivos Compreender como desenvolver algoritmos básicos em JAVA Aprender como escrever programas na Linguagem JAVA baseando-se na Linguagem Portugol aprender as sintaxes equivalentes entre
Leia maisSeleção Múltipla Laços (while, do-while, for) AULA 05
Introdução a Programação IF669 http://www.cin.ufpe.br/~if669 Seleção Múltipla Laços (while, do-while, for) AULA 05 Ricardo Massa F. Lima rmfl@cin.ufpe.br Sérgio C. B. Soares scbs@cin.ufpe.br Até aqui...
Leia maisIntrodução a JAVA. Variáveis, tipos, expressões, comandos e blocos
+ Introdução a JAVA Variáveis, tipos, expressões, comandos e blocos +Roteiro 2 Variáveis e tipos Operadores aritméticos, lógicos, relacionais e bit-a-bit Atribuição Comandos básicos Ler, Escrever, Condicional,
Leia maisEstrutura do programa
Linguagem C Estrutura do programa Exemplo: #include #include main() { printf( Ola, mundo! ); system( pause ); }
Leia maisIntrodução a JAVA. Variaveis, tipos, expressões, comandos e blocos
Introdução a JAVA Variaveis, tipos, expressões, comandos e blocos Roteiro Variáveis e tipos Operadores aritméticos, lógicos, relacionais e bit-a-bit Atribuição Comandos básicos Ler, Escrever, Condicional,
Leia maisCONCEITOS BÁSICOS DE ORIENTAÇÃO A OBJETOS PROF. ME. HÉLIO ESPERIDIÃO
CONCEITOS BÁSICOS DE ORIENTAÇÃO A OBJETOS PROF. ME. HÉLIO ESPERIDIÃO CLASSES E OBJETOS PARA PROGRAMAÇÃO ORIENTADA A OBJETOS Classes são estruturas das linguagens de POO criadas para conter os dados que
Leia maisALGORITMOS AULA 2. Profª Amanda Gondim
ALGORITMOS AULA 2 Profª Amanda Gondim LINEARIZAÇÃO DE EXPRESSÕES Para a construção de algoritmos que realizam cálculo matemáticos, todas as expressões aritméticas devem ser linearizadas, ou seja, colocadas
Leia maisINSTITUTO FEDERAL DE! EDUCAÇÃO, CIÊNCIA E TECNOLOGIA RIO GRANDE DO NORTE
INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA RIO GRANDE DO NORTE Algoritmos ANSI C - Introdução Copyright 2014 IFRN Agenda Conceitos básicos ANSI C Hello World Funções em C Exercícios 2 /26 A linguagem
Leia maisAlgoritmos II prof. Daniel Oliveira
Algoritmos II prof. Daniel Oliveira Revisar conceitos abordados na disciplina anterior Abordar conceitos vistos com a linguagem C# Variáveis e listas Expressões Estruturas de controle do tipo condicional
Leia maisPROGRAMAÇÃO I E N T R A DA E S A Í DA D E DA D O S
PROGRAMAÇÃO I VA R I Á V E I S, C O N S TA N T E S, O P E R A D O R E S E N T R A DA E S A Í DA D E DA D O S Variáveis 2 Variáveis são locais onde são armazenados os valores na memória. Toda variável é
Leia maisMini apostila de Python - Oficina de Vestibulandos. PET Computação - UFPR September 2016
Mini apostila de Python - Oficina de Vestibulandos PET Computação - UFPR September 2016 1 Sumário 1 Introdução 3 2 Obtenção e Instalação 3 3 Variáveis 3 4 Operações Matemáticas 5 5 Entrada de Dados 6 6
Leia maisLinguagem Haskell. Universidade Estadual Santa Cruz Conceitos de Linguagens de Programação. Tiago Carneiro 19 Agosto 2013
Linguagem Haskell Universidade Estadual Santa Cruz Conceitos de Linguagens de Programação Tiago Carneiro 19 Agosto 2013 1 1 Linguagem Haskell Linguagem de programação funcional É um paradigma de programação
Leia maisAlgoritmos e Programação
Algoritmos e Programação Aula 3 Introdução a Linguagem C Profa. Marina Gomes marinagomes@unipampa.edu.br 1 Aula de Hoje - Criar programas simples em C utilizando a estrutura básica; - Declarar variáveis;
Leia maisUNIVERSIDADE FEDERAL DO RIO GRANDE DO NORTE DEPARTAMENTO DE INFORMÁTICA E MATEMÁTICA APLICADA. DIM0320 Algoritmos e Programação de Computadores
UNIVERSIDADE FEDERAL DO RIO GRANDE DO NORTE DEPARTAMENTO DE INFORMÁTICA E MATEMÁTICA APLICADA DIM0320 Algoritmos e Programação de Computadores #VARIÁVEIS #TIPOS DE DADOS E L I EZ I O S O A R ES E L I EZ
Leia maisDesenvolvido por: Juarez A. Muylaert Filho - Andréa T. Medeiros - Adriana S. Spallanzani -
UAL é uma linguagem interpretada para descrição de algoritmos em Português. Tem por objetivo auxiliar o aprendizado do aluno iniciante em programação através da execução e visualização das etapas de um
Leia maisLinguagem C. André Tavares da Silva.
Linguagem C André Tavares da Silva dcc2ats@joinville.udesc.br Variáveis Posição nomeada de memória que é usada para guardar um valor que pode ser modificado pelo programa. Todas as variáveis devem ser
Leia maisGrupo 3: 8,3 - Parte Léxica (2,0): 1,9 - Na parte I especificou tamanho de identificador com 512 caracteres, mas não tratou (-0,1) -Parte Sintática
Grupos revisem os problemas da análise léxica e sintática ANTES de passarem para as fases seguintes. Os grupos que não fizeram revisão hoje (13/5), podem fazer na semana dia 24/5 Grupo 1: 6,0 - Parte Léxica
Leia maisOperadores e Estruturas de Decisão
Operadores e Estruturas de Decisão Leonardo Gresta Paulino Murta leomurta@ic.uff.br Aula de hoje Operadores Aritméticos (usados em contas) Relacionais (usados em comparações numéricas) Lógicos (usados
Leia maisSintaxe da linguagem Java
Sintaxe da linguagem Java (PG) Centro de Cálculo Instituto Superior de Engenharia de Lisboa Pedro Alexandre Pereira (palex@cc.isel.ipl.pt) Classe pública com método main Uma classe pública com nome A tem
Leia maisOperadores e Estruturas de Decisão. Vanessa Braganholo
Operadores e Estruturas de Decisão Vanessa Braganholo vanessa@ic.uff.br Aula de hoje Operadores Aritméticos (usados em contas) Relacionais (usados em comparações numéricas) Lógicos (usados em comparações
Leia maisALGORITMOS AULA 01. Baseado nas aulas do Prof. Jorgiano Vidal
ALGORITMOS AULA 01 Baseado nas aulas do Prof. Jorgiano Vidal LINGUAGEM C Uma das grandes vantagens do C é que ele possui tanto caracterìsticas de "alto nìvel" quanto de "baixo nìvel". Linguagem de propósito
Leia maisPasso-a-passo para desenvolver um Programa usando a Linguagem Python
Cursos: Engenharia de Produção / Tecnólogo em Gestão da Qualidade Disciplina: Informática Professora: Flávia Pereira de Carvalho Passo-a-passo para desenvolver um Programa usando a Linguagem Python 1)
Leia mais3. Linguagem de Programação C
Introdução à Computação I IBM1006 3. Linguagem de Programação C Prof. Renato Tinós Departamento de Computação e Matemática (FFCLRP/USP) 1 3.3. Conceitos Básicos de C: Expressões, Operadores e Bibliotecas
Leia maisEstruturas de Repetição e String
Estruturas de Repetição e String Leonardo Gresta Paulino Murta leomurta@ic.uff.br Estruturas de repetição whiledo dowhile for Aula de hoje String Manipulação de textos Leonardo Murta Estruturas de Repetição
Leia maisI1, I2 e In são instruções simples ou estruturadas da linguagem Pascal.
Capítulo 4 TESTES, ESCOLHAS E MALHAS DE REPETIÇÃO 1. INTRODUÇÃO Em muitos exemplos e exercícios realizados nos capítulos anteriores, não foram raras as vezes em que fizemos uso de elementos disponíveis
Leia maisMódulo Lógica Programação com aplicações em Java. Projeto khouse Profissionalizante Profª Larissa Brandão
Educação Módulo Lógica e Ética de Programação com aplicações em Java Projeto khouse Profissionalizante Profª Larissa Brandão Educação e Ética Fundamentos da Programação Objetivos: Reconhecer as diferenças
Leia maisAlgoritmos. Algoritmos e Linguagem de Programação - Prof Carlos Vetorazzi
Algoritmos Algoritmos e Linguagem de Programação - Prof Carlos Vetorazzi Conceitos Linhas de Código de um Algoritmo ou Programa escrita do programa linha a linha, ou seja, a sintaxe do programa, podendo-se
Leia maisUniversidade Federal de Goiás Bacharelado em Ciências da Computacão Compiladores
Universidade Federal de Goiás Bacharelado em Ciências da Computacão Compiladores 2013-2 Compilador para a Linguagem Cafezinho Especificação dos trabalhos: T2 (Geração da Representação Intermediária e Análise
Leia maisEstrutura de Condição, Escolha e Repetição
Estrutura Condicional Se, Laços de repetição Estrutura de Condição, Escolha e Repetição Profª Fabíola Gonçalves C. Ribeiro Conteúdo Expressões Aritméticas Funções Expressões Lógicas Operadores Lógicos
Leia maisProf. A. G. Silva. 28 de agosto de Prof. A. G. Silva INE5603 Introdução à POO 28 de agosto de / 1
INE5603 Introdução à POO Prof. A. G. Silva 28 de agosto de 2017 Prof. A. G. Silva INE5603 Introdução à POO 28 de agosto de 2017 1 / 1 Comandos de decisão simples e compostas Objetivos: Utilização de controles
Leia maisAula de hoje. Expressões. Expressões. Expressões. Exemplos. Programa em Python. SCC Introdução à Programação para Engenharias
SCC 124 - Introdução à Programação para Engenharias Expressões Professor: André C. P. L. F. de Carvalho, ICMC-USP Pos-doutorando: Isvani Frias-Blanco Monitor: Henrique Bonini de Britto Menezes Aula de
Leia maisUm Compilador Simples. Definição de uma Linguagem. Estrutura de Vanguarda. Gramática Livre de Contexto. Exemplo 1
Definição de uma Linguagem Linguagem= sintaxe + semântica Especificação da sintaxe: gramática livre de contexto, BNF (Backus-Naur Form) Especificação Semântica: informal (textual), operacional, denotacional,
Leia maisINE5416 Paradigmas de Programação. Ricardo Azambuja Silveira INE CTC UFSC E Mail: URL:
INE5416 Paradigmas de Programação Ricardo Azambuja Silveira INE CTC UFSC E Mail: silveira@inf.ufsc.br URL: www.inf.ufsc.br/~silveira Conceitos Léxica estudo dos símbolos que compõem uma linguagem Sintaxe
Leia maisPuca Huachi Vaz Penna
Aula 3 C++: variáveis e expressões aritméticas 2017/1 BCC201 Introdução à Computação Turmas 61, 62, 63, 64, 65 e 66, 32 e 33 Puca Huachi Vaz Penna Departamento de Computação Universidade Federal de Ouro
Leia maisOperadores e Estruturas de Decisão
Operadores e Estruturas de Decisão Leonardo Gresta Paulino Murta leomurta@ic.uff.br Aula de hoje Operadores Aritmé=cos (usados em contas) Relacionais (usados em comparações numéricas) Lógicos (usados em
Leia maisComputação para Informática - Prof. Adriano Joaquim de Oliveira Cruz Segunda Aula Prática - 29 de agosto de 2008
Computação para Informática - Prof. Adriano Joaquim de Oliveira Cruz Segunda Aula Prática - 29 de agosto de 2008 Introdução O objetivo desta aula prática é exercitar comandos de entrada e saída simples
Leia maisFluxograma Pseudocódigo Estruturas de decisão. Professor Leandro Augusto Frata Fernandes
Programação de Computadores III Aula 4 Professor Leandro Augusto Frata Fernandes laffernandes@ic.uff.br Material disponível em http://www.ic.uff.br/~laffernandes/teaching/2011.1/tcc-03.063 Roteiro da Aula
Leia maisProgramação de Computadores III
Programação de Computadores III Pseudocódigo e Estruturas Básicas de Controle Professor Hugo de Oliveira Barbalho hbarbalho@ic.uff.br Material produzido pelo professor: Leandro Augusto Frata Fernandes
Leia maisINFORMÁTICA APLICADA AULA 03 ALGORITMOS
UNIVERSIDADE FEDERAL RURAL DO SEMI-ÁRIDO CURSO: Bacharelado em Ciências e Tecnologia INFORMÁTICA APLICADA AULA 03 ALGORITMOS Profª ª Danielle Casillo LINEARIZAÇÃO DE EXPRESSÕES Para a construção de algoritmos
Leia maisIntrodução a classes e objetos. Prof. Marcelo Roberto Zorzan
Introdução a classes e objetos Prof. Marcelo Roberto Zorzan Aula de Hoje Abstração de Dados Classes e Objetos Definição de Métodos Métodos com parâmetro Abstração de Dados Processo mental através do qual
Leia maisALGORITMOS. Professor: Diego Oliveira. Aula 06 - Tipos Primitivos de Dados
ALGORITMOS Professor: Diego Oliveira Aula 06 - Tipos Primitivos de Dados Netbeans Para testar nossos exemplos criaremos uma classe no Netbeans Nesta disciplina não será visto nada de orientação a objetos,
Leia maisComo construir um compilador utilizando ferramentas Java
Como construir um compilador utilizando ferramentas Java p. 1/2 Como construir um compilador utilizando ferramentas Java Aula 1 - Introdução Prof. Márcio Delamaro delamaro@icmc.usp.br Como construir um
Leia maisEstruturas de Controle de Fluxo Estruturas de Seleção. Givanaldo Rocha
Estruturas de Controle de Fluxo Estruturas de Seleção Givanaldo Rocha givanaldo.rocha@ifrn.edu.br http://docente.ifrn.edu.br/givanaldorocha Conceito Até agora, desenvolvemos algoritmos que nos permitem
Leia maisCompilação da linguagem Panda
Construção de Compiladores I [BCC328] Atividades Práticas Compilação da linguagem Panda Departamento de Computação Universidade Federal de Ouro Preto Prof. José Romildo Malaquias 22 de abril de 2015 Resumo
Leia maisCurso de PHP. FATEC - Jundiaí
Curso de PHP ATEC - Jundiaí Aspas Invertidas Ao utilizarmos as aspas invertidas como delimitadores, estaremos usando uma função muito interessante que o PHP oferece, que é executar comandos do sistema
Leia maisUnidade 5: Introdução à Programação com C/C++ Prof. Daniel Caetano
Lógica de Programação para Engenharia 1 Unidade 5: Introdução à Programação com C/C++ Prof. Daniel Caetano Objetivo: Explicitar os elementos básicos envolvidos na programação com a linguagem C/C++. Bibliografia:
Leia maisClasses o Objetos. Classes, objetos, métodos e variáveis de instância
Classes o Objetos Um recurso comum de cada aplicativo feito até agora é que todas as instruções que realizavam tarefas localizavam-se no método main. Se você tornar parte de uma equipe de desenvolvimento
Leia maisFluxogramas e variáveis
Fluxogramas e variáveis Patrícia de Siqueira Ramos UNIFAL-MG, campus Varginha 11 de Março de 2019 Patrícia de Siqueira Ramos Fundamentos da programação 1 / 20 Fases de um algoritmo Patrícia de Siqueira
Leia mais