Resolução dos exercícios de YACC das aulas práticas de Processamento de linguagens LEX/YACC. Maria João Tinoco Varanda Pereira

Tamanho: px
Começar a partir da página:

Download "Resolução dos exercícios de YACC das aulas práticas de Processamento de linguagens LEX/YACC. Maria João Tinoco Varanda Pereira"

Transcrição

1 Resolução dos exercícios de YACC das aulas práticas de Processamento de linguagens LEX/YACC Maria João Tinoco Varanda Pereira Junho 2003

2 2

3 Capítulo 1 Exercícios de YACC 1.1 Enunciados 1. Considere um texto que pretende representar um conjunto de alunos da seguinte forma: joao 1233 (15,14,16,10) teresa 1478 (12,11,17,12) Para cada aluno consta o seu nome, o seu número de identificação e uma sequência de notas. O programa deverá reconhecer este texto e deverá indicar para cada aluno o seu nome e a média das notas. 2. Considere uma linguagem de descrição de máquinas de estados: ROLDANA parada e1 (x>3) = andar andar e2 (x<3) = parada BOTAO activo e2 (a<5) = desactivo Esta linguagem permite a descrição de várias máquinas, indicando para cada uma delas o nome e um conjunto de transições de estado. Cada transição de estado é caracterizada por um estado inicial, por um evento que deve ocorrer para que a transição seja efectuada (opcional), por uma condição e por um estado final. Pretende-se construir um tradutor que reconheça um texto fonte com estas características e produza um texto final com o seguinte formato: Nome: ROLDANA if ( estado==parada && e1 && x>3) {estado=andar if ( estado==andar && e2 && x<3) {estado=parada Nome: BOTAO if ( estado==activo && e2 && a<5) {estado=desactivo 3. Altere o programa anterior de forma a que para cada máquina surja apenas o seu conjunto de estados: Nome: ROLDANA Estados: parada, andar Nome: BOTAO Estados: activo, desactivo 3

4 CAPÍTULO 1. EXERCÍCIOS DE YACC a) Implemente este exercício sem recorrer a nenhuma estrutura auxiliar. b) Implemente este exercício recorrendo a uma lista ligada simples para coleccionar os estados. 4. Construa um programa LEX/YACC que implemente uma calculadora. Alguns exemplos de texto fonte e texto final são apresentados na tabela abaixo. Considere que são apenas possíveis operações Inicial Final (* 2 (+ 4 5)) 18 (* ( ) 4 5) 120 de soma e multiplicação, que o número de operandos pode tomar qualquer valor acima de dois e são do tipo inteiro. 5. Construa um programa em LEX/YACC que aceite um texto que representa o calendário de exames de um curso: lp 17: /2 io 18: /2 pl 11: /2 O programa deve também listar para cada dia os exames que irão decorrer e, para cada sala, a hora e dia em que estão ocupadas. 6. Pretende-se construir um reconhecedor de uma linguagem de descrição de desenhos que permita guardar toda essa informação numa estrutura para mais tarde se proceder ao seu desenho. O texto fonte terá que ter o seguinte formato: janela: Q 20 * 20 porta: R 40 * 20 sol: C 100 * 100 Q (quadrado) R (rectângulo) C (círculo) 7. Construa um calculador de expressões usando programas LEX/YACC para reconhecer as expressões de entrada. Os operadores disponíveis serão: % (percentagem) +,-,*,/, permitindo o uso de parêntesis para forçar prioridades a expressão deverá finalizar com. e os operandos devem ser do tipo inteiro. 8. Considere uma linguagem que permite definir as posições de segmentos de recta e de pedaços de texto. Cada segmento de recta é definido pelas coordenadas do ponto inicial, pelo declive e pelo comprimento. Cada texto é um conjunto de caracteres entre aspas que poderão ocupar mais do que uma linha. Para cada texto são também indicadas as coordenadas da posição inicial. Pretende-se construir um reconhecedor para esta linguagem e um tradutor que imprima na saída as coordenadas iniciais e finais de cada segmento de recta, assim como, as coordenadas iniciais dos textos. As coordenadas finais de um segmento são calculadas da seguinte forma: xf = xi + comprimento * cos(declive) yf = yi + comprimento * sin(declive) Nota: As unidades do comprimento poderão ser em centímetros ou polegadas (polegada=3,5cm). Exemplo de um texto fonte: LINHA (3,5) (0.5) (20 cm) TEXTO (10,15) Olá LINHA (10,20) (1.7) (10 inch) 4

5 1.1. ENUNCIADOS Texto de saída: Recta [(3.00,5.00),(20.55,14.59)] O texto Olá começa na posiç~ao (10.00,15.00) Recta [(10.00,20.00),(5.49,54.71)] 9. Considere a seguinte situação: Para fácil acesso por todos através da internet, pretende-se produzir, automaticamente, um dicionário em html, com a classificação gramatical de cada palavra, origem (quando conhecida), significados e (para cada caso semântico) sinónimos e exemplos de utilização. Para o efeito deve ser: a) definida uma linguagem que permita declarar cada palavra, descrevendo toda a informação conhecida (relatada no parágrafo acima) e disponível sobre ela b) desenvolvido um processador para essa linguagem que, após ler e validar as declarações referidas, faça o seu reconhecimento e gere uma página html para cada palavra definida, bem como uma página inicial com o índice (por ordem alfabética) de todas as palavras introduzidas (ligando cada uma à respectiva página). O gerador das páginas html correspondentes ao índice e a cada palavra, terá de dotar cada página com os botões de navegação (realizados na forma de links) necessários para avançar para a palavra seguinte ou anterior e saltar para a página inicial, bem como saltar para as palavras indicadas como sinónimos (caso também estejam definidas no dicionário). Além disso, deve validar que o dicionário tenha pelo menos uma palavra e que não hajam repetições de definições da mesma palavra. 5

6 CAPÍTULO Resoluções Exercício 1 FICHEIRO LEX EXERCÍCIOS DE YACC [0-9]+ {yylval.num=atoi(yytext) return(n) [a-za-z]+ {strcpy(yylval.s,yytext) return(id) [(),] {return(yytext[0]) [ \n\t] yywrap(){return(1) FICHEIRO YACC #define MAX_STR 60 % %start gra %union{ char s[max_str+1] int num %token <s> ID %token <num> N %token ( ), %type <num> notas gra : linhas linhas : linha linhas linha linha : aluno ident ( notas ) {printf("media:%f\n",$4/4.0) aluno : ID {printf("nome:%s\n",$1) ident : N {printf("identificacao:%d\n",$1) notas : N {printf("primeiro:%d\n",$1) $$ = $1 notas, N {printf("outros:%d\n",$3) $$ = $1 + $3 main() {yyparse() yyerror() {printf("erro sintactico") return(0) 6

7 1.2. RESOLUÇÕES Exercício 2 FICHEIRO LEX PALAVRA ([A-Z]+) ID_CHARS ([a-z]+) EV ([a-z][0-9]) CD ([><0-9a-zA-Z]+) {ID_CHARS {strcpy(yylval.str,yytext) return(estado) {PALAVRA {strcpy(yylval.str,yytext) return(nome) {EV {strcpy(yylval.str,yytext) return(evento) {CD {strcpy(yylval.str,yytext) return(cond) [\(\)\=] {return(yytext[0]) [ \n\t]. {printf("caracter Invalido\n") yywrap() {return(1) FICHEIRO YACC %start descricao %union{ char str[20] %token <str> ESTADO %token <str> NOME %token <str> COND %token <str> EVENTO %token ( ) = descricao : maquinas maquinas : maquinas maquina maquina maquina : NOME {printf("nome:%s\n",$1) prods prods : prods prod prod prod : ESTADO EVENTO ( COND ) = ESTADO {printf("if(estado==%s && %s && %s) {estado= %s\n",$1,$2,$4,$7) #include <string.h> main() {yyparse() yyerror() {printf("erro SINTACTICO") return(0) 7

8 CAPÍTULO 1. Exercício 3a) FICHEIRO YACC EXERCÍCIOS DE YACC %start descricao %union{ char str[20] %token <str> ESTADO %token <str> NOME %token <str> COND %token <str> EVENTO %token ( ) = %type <str> prod %type <str> prods descricao: maquinas maquinas : maquinas maquina maquina maquina : NOME prods {printf("nome:%s\n",$1) printf("estados:%s\n",$2) prods : prods prod {sprintf($$,"%s,%s",$1,$2) prod {sprintf($$,"%s",$1) prod : ESTADO EVENTO ( COND ) = ESTADO {sprintf($$,"%s,%s",$1,$7) #include <string.h> main() {yyparse() yyerror() {printf("erro SINTACTICO") return(0) 8

9 1.2. RESOLUÇÕES Exercício 3b) FICHEIRO YACC #include <stdio.h> typedef struct cel{ char *estado struct cel *next *seq seq lista % %start descricao %union{ char str[20] %token <str> ESTADO %token <str> NOME %token <str> COND %token <str> EVENTO %token ( ) = descricao : maquinas maquinas : maquinas maquina maquina maquina : NOME prods {printf("nome:%s\n",$1) lista=imprimir(lista) prods : prods prod prod prod : ESTADO EVENTO ( COND ) = ESTADO {lista=insere(lista,$1) lista=insere(lista,$7) #include <string.h> seq imprimir(seq s){ for(s!=nulls=s->next) printf("%s",s->estado) return((seq)null) seq insere(seq s,char *est){ if(s==null){ s=malloc(sizeof(struct cel)) s->estado = malloc(20) strcpy(s->estado,est) s->next=null else if (strcmp(s->estado,est)) s->next=insere(s->next,est) return(s) main() {yyparse() yyerror() {printf("erro SINTACTICO") return(0) ou... 9

10 CAPÍTULO 1. EXERCÍCIOS DE YACC #include <stdio.h> char *lista[20] int max=0 % %start descricao %union{ char str[20] %token <str> ESTADO %token <str> NOME %token <str> COND %token <str> EVENTO %token ( ) = descricao : maquinas maquinas : maquinas maquina maquina maquina : NOME prods {printf("nome:%s\n",$1) imprimir(lista) prods : prods prod prod prod : ESTADO EVENTO ( COND ) = ESTADO {insere(lista,$1) insere(lista,$7) #include <string.h> int existe(char **l,char * est){ int i for(i=0i<maxi++){ if(!strcmp(l[i],est)) return(1) return(0) insere(char **l,char *est){ if(!existe(l,est)) { l[max]=malloc(20) strcpy(l[max],est) max++ imprimir(char **l){ int i for(i=0i<maxi++){printf("%s,",l[i]) printf("\n") max=0 main(){yyparse() yyerror(){printf("erro SINTACTICO") return(0) 10

11 1.2. RESOLUÇÕES Exercício 4 FICHEIRO LEX [+-]?[0-9]+ {yylval.ival=atoi(yytext) return (INTEIRO) [\(\)\*\+] {return(yytext[0]). \n yywrap(){return(1) FICHEIRO YACC #include <stdio.h> typedef struct cel{ int at struct cel *next *seq % %start axioma %union{ int ival seq seqv %token <ival> INTEIRO %token ( ) * + %type <ival> sexp %type <seqv> lista axioma : axioma sexp {printf("=%d\n",$2) sexp {printf("=%d\n",$1) sexp : INTEIRO {$$ = $1 ( + lista ) {$$ = soma($3) ( * lista ) {$$ = prod($3) lista : lista sexp {$$ = cons($2,$1) {$$ = makelista() int soma(s) /*calcula soma e liberta a lista*/ seq s { int som = 0 seq aux for(s!=nullaux=s,s=s->next,free(aux)) som += s->at return(som) int prod(s) /* calcula produto e liberta lista*/ seq s { int pro=1 seq aux 11

12 CAPÍTULO 1. EXERCÍCIOS DE YACC for(s!=nullaux=s,s=s->next,free(aux)) pro *= s->at return(pro) seq makelista() {return((seq)null) seq cons(ele,s) seq s int ele { seq aux aux=(seq) malloc(sizeof(struct cel)) aux->at = ele aux->next = s return(aux) main(){yyparse() yyerror(){return(0) 12

13 1.2. RESOLUÇÕES Exercício 5 FICHEIRO LEX int primeiravez=1 % LETRAS ([a-za-z]+) SALAS ([0-9]+) HORAS ([0-9:]+) DIAS ([/0-9]+) WS ([ \n\t]*) %START A B C D if(primeiravez==1) {primeiravez=0 BEGIN A % <A>{WS[a-zA-Z]+ {strcpy(yylval.str,yytext) BEGIN B return(disciplina) <B>{WS[0-9:]+ {strcpy(yylval.str,yytext) BEGIN C return(hora) <C>{WS[0-9]+ {strcpy(yylval.str,yytext) BEGIN D return(sala) <D>{WS[/0-9]* {strcpy(yylval.str,yytext) return(dia)begin A #include <string.h> yywrap() {return(1) FICHEIRO YACC #define MAX_STR 30 % %start calendario %union{ char str[max_str+1] %token <str> DISCIPLINA %token <str> HORA %token <str> SALA %token <str> DIA %type <str> exame %type <str> exames calendario : exames {printf("%s",$1) exames : exames exame {sprintf($$,"%s,%s",$1,$2) exame {sprintf($$,"%s",$1) exame : DISCIPLINA HORA SALA DIA {sprintf($$,"%s",$3) if(!strcmp($4,"18/2")) printf("disciplina:%s\n",$1) main(){yyparse() yyerror(){printf("erro SINTACTICO") return(0) 13

14 CAPÍTULO 1. Exercício 6 FICHEIRO LEX EXERCÍCIOS DE YACC [0-9]+ {yylval.nm=atoi(yytext) return(num) [RQTC] {yylval.ch=yytext[0] return(letra) [a-za-z]+ {strcpy(yylval.str,yytext) return(id) [:\*] {return(yytext[0]) [ \n\t]. {printf("caracter invalido") yywrap(){return(1) FICHEIRO YACC #include <stdio.h> typedef struct cel{ char *ident char *tipo char *dim struct cel *nextinfo, *seq seq lista=null % %start desenhos %union{ char str[30] int nm char ch %token <str> ID %token <nm> NUM %token <ch> LETRA %type <ch> tipo %type <str> dim desenhos : desenho {lista=imprimir(lista) desenho : desenho figura figura figura : ID : tipo dim {printf("nome:%s",$1) lista=cons($1,$3,$4,lista) tipo : LETRA {$$=$1 dim : NUM {sprintf($$,"%d",$1) dim * NUM {sprintf($$,"%s,%d",$1,$3) #include <string.h> main(){yyparse() yyerror(){printf("erro SINTACTICO") return(0) seq cons(char *id,char letra,char *d,seq l){ seq aux aux=(seq) malloc(sizeof(struct cel)) 14

15 1.2. RESOLUÇÕES aux->ident=malloc(20) strcpy(aux->ident,id) aux->tipo=malloc(20) if (letra== R ) strcpy(aux->tipo,"rectangulo") else if (letra== Q ) strcpy(aux->tipo,"quadrado") else if (letra== T ) strcpy(aux->tipo,"triangulo") else if (letra== C ) strcpy(aux->tipo,"circulo") aux->dim=malloc(20) strcpy(aux->dim,d) aux->next=l return(aux) seq imprimir(seq l){ for(l!=nulll=l->next){ printf("%s",l->ident) printf("%s",l->tipo) printf("%s",l->dim) return((seq)null) 15

16 CAPÍTULO 1. Exercício 7 FICHEIRO LEX EXERCÍCIOS DE YACC [0-9]+ {yylval.i=atoi(yytext) return TINT [()/*+%\-\n.] {return(yytext[0]) " " yywrap() {return(1) FICHEIRO YACC int ant=0 % %token TINT %union{int i %type <i> TINT E E1 E2 L : E \n {printf("%d\n> ",$1)ant=$1 L E : E % {$$ = $1/100 E + E2 {$$ = $1 + $3 E - E2 {$$ = $1 - $3 E2 {$$ = $1 E2 : E2 * E1 {$$ = $1 * $3 E2 / E1 {$$ = $1 / $3 E1 {$$ = $1 E1 : TINT {$$=$1 ( E ) {$$ = $2 + E1 {$$ = $2 - E1 {$$ = $2. {$$=ant main(){ yyparse() yyerror(char *s){ fprintf(stderr,"erro %s detectado (%s) \n",s,yytext) 16

17 1.2. RESOLUÇÕES Exercício 8 FICHEIRO LEX #include <stdlib.h> char buf[100] char *s % %option yylineno %x STR \) return ) \( return ( \ return \, return, \" {BEGIN STR s=buf <STR>\\n {*s++= \n <STR>\\t <STR>\" {*s++= \t {*s=0 BEGIN 0 yylval.cval=buf return STRING <STR>. { *s++=*yytext LINHA return LINHA TEXTO return TEXTO inch return inch cm return cm [1-9][0-9]*\.[0-9]* { yylval.fval = atof(yytext) return NUMERO [0-9]\.[0-9]* { yylval.fval = atof(yytext) return NUMERO [1-9][0-9]* { yylval.fval = atof(yytext) return NUMERO 0 {yylval.fval = 0 return NUMERO [ \t\n]*. printf("erro léxico, linha %d\n",yylineno) int yywrap() {return 1 FICHEIRO YACC #include <math.h> #define TCNVINCH 3.5 % 17

18 CAPÍTULO 1. EXERCÍCIOS DE YACC %union { float fval char *cval enum {mcm, minch tval struct ponto {float x, y pval %start grafico %token LINHA TEXTO %token <fval> NUMERO %token <cval> STRING %token inch cm %type <fval> comp decl %type <tval> unid %type <pval> loc grafico : grafico comando comando : linha texto linha : LINHA loc decl comp {float x = $2.x + $4 * (cos((double)($3))) float y = $2.y + $4 * (sin((double)($3))) printf("recta [(%5.2f,%5.2f),(%5.2f,%5.2f)]\n", $2.x,$2.y,x,y) texto : TEXTO loc STRING {printf("o texto:\"%s\" começa na posiçao (%5.2f,%5.2f)\n",$3,$2.x,$2.y) loc : ( NUMERO, NUMERO ) {$$.x=$2 $$.y=$4 decl : ( NUMERO ) {$$ = $2 comp : ( NUMERO unid ) { switch($3){ case minch: unid : inch {$$ = minch cm {$$ = mcm main(){yyparse() yyerror(){printf("erro sintáctico\n") return(0) case mcm: $$=$2 break default: $$=0 $$=$2*TCNVINCH break 18

Processamento de Linguagens I LESI + LMCC (3 o ano)

Processamento de Linguagens I LESI + LMCC (3 o ano) Processamento de Linguagens I LESI + LMCC (3 o ano) 3 o Ficha Prática Ano Lectivo de 05/06 1 Objectivos Este ficha prática contém 1 exercício para ser resolvido nas aulas teórico-práticas com vista a consolidar

Leia mais

Resolução dos exercícios de LEX das aulas práticas de Processamento de linguagens LEX/YACC. Maria João Tinoco Varanda Pereira

Resolução dos exercícios de LEX das aulas práticas de Processamento de linguagens LEX/YACC. Maria João Tinoco Varanda Pereira Resolução dos exercícios de LEX das aulas práticas de Processamento de linguagens LEX/YACC Maria João Tinoco Varanda Pereira Março 2003 2 Capítulo 1 Exercícios de LEX 1.1 Resoluções 1. Usando o Lex, construa

Leia mais

Linguagens de Programação I

Linguagens de Programação I Linguagens de Programação I Tema # 4 Operadores em C Susana M Iglesias FUNÇÕES ENTRADA-SAÍDA I/O printf(), utilizada para enviar dados ao dispositivo de saída padrão (stdout), scanf(), utilizada para ler

Leia mais

Processamento de Linguagens I LESI + LMCC (3Âo ano)

Processamento de Linguagens I LESI + LMCC (3Âo ano) Processamento de Linguagens I LESI + LMCC (3Âo ano) 2Âa Ficha Prática Ano Lectivo de 05/06 1 Objectivos Este ficha prática contém exercícios para serem resolvidos nas aulas teórico-práticas com vista a

Leia mais

Questão Aula Tipo - Flex+Bison

Questão Aula Tipo - Flex+Bison Questão Aula Tipo - Flex+Bison Uma nova rede social de microblogging, es0lo Twi,er, pretende receber mensagens em bloco, usando um ficheiro de texto. Para isso, começou por definir os formatos disponíveis

Leia mais

Programação Estruturada

Programaçã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 mais

Computação Informática

Computação Informática Computação Informática Linguagem C Matrizes em C Aula N. 05 Prof. SIMÃO Jean Marcelo SIMÃO 1 Estrutura de Dados Homogênea matrizes Uma matriz computacional é um váriável composta capaz de armazenar uma

Leia mais

Programação 1. Atribuição, operadores aritméticos, entrada de dados. Técnico em Eletrônica Semestre 5 02

Programação 1. Atribuição, operadores aritméticos, entrada de dados. Técnico em Eletrônica Semestre 5 02 Programação 1 Atribuição, operadores aritméticos, entrada de dados Técnico em Eletrônica Semestre 5 02 Armazenando na memória tipo de variável #include #include main() { int ano; Declaração

Leia mais

Algoritmos e Programação

Algoritmos 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 mais

3. Linguagem de Programação C

3. 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 Principais Tópicos 3.2. Estrutura de Programas e Representação

Leia mais

Estruturas. K&R: Capitulo 6. Estruturas IAED, 2014/2015. Introdução às Estruturas Estruturas e Funções Vectores de Estruturas Typedef Exemplo

Estruturas. K&R: Capitulo 6. Estruturas IAED, 2014/2015. Introdução às Estruturas Estruturas e Funções Vectores de Estruturas Typedef Exemplo Estruturas K&R: Capitulo 6 Estruturas Introdução às Estruturas Estruturas e Funções Vectores de Estruturas Typedef Exemplo 2 1 Motivação Definir uma representação agregada na linguagem C para manipular

Leia mais

INF 1620 P2-23/10/04 Questão 1 Nome:

INF 1620 P2-23/10/04 Questão 1 Nome: INF 1620 P2-23/10/04 Questão 1 Considere um tipo abstrato de dados para representar uma disciplina da PUC-Rio, com as seguintes informações: Nome da disciplina: com até 50 caracteres Código da disciplina:

Leia mais

ESTRUTURAS CONDICIONAIS. Baseado nos slides de autoria de Rosely Sanches e Simone Senger de Souza

ESTRUTURAS CONDICIONAIS. Baseado nos slides de autoria de Rosely Sanches e Simone Senger de Souza ESTRUTURAS CONDICIONAIS Baseado nos slides de autoria de Rosely Sanches e Simone Senger de Souza Estruturas de Controle ESTRUTURA SEQUENCIAL ESTRUTURA CONDICIONAL ESTRUTURA DE REPETIÇÃO 2 Estruturas Condicionais

Leia mais

INF 1620 P2-14/10/05 Questão 1 Nome:

INF 1620 P2-14/10/05 Questão 1 Nome: INF 1620 P2-14/10/05 Questão 1 Considere um cadastro de produtos de um estoque, com as seguintes informações para cada produto: Código de identificação do produto: representado por um valor inteiro Nome

Leia mais

ESTRUTURAS CONDICIONAIS. Introdução à Ciência da ComputaçãoI Simone Senger de Souza

ESTRUTURAS CONDICIONAIS. Introdução à Ciência da ComputaçãoI Simone Senger de Souza ESTRUTURAS CONDICIONAIS Introdução à Ciência da ComputaçãoI Simone Senger de Souza Estruturas de Controle ESTRUTURA SEQUENCIAL ESTRUTURA CONDICIONAL ESTRUTURA DE REPETIÇÃO 2 Estruturas Condicionais Estrutura

Leia mais

INF 1620 P1-16/09/06 Questão 1 Nome:

INF 1620 P1-16/09/06 Questão 1 Nome: INF 1620 P1-16/09/06 Questão 1 Considerando a fórmula para o cálculo da distância entre dois pontos (x 1, y 1 ) e (x 2, y 2 ) apresentada a seguir: d = (x 2 " x 1 ) 2 + (y 2 " y 1 ) 2 (a) Escreva uma função

Leia mais

#include <stdio.h> Void main() { printf( Cheguei!\n"); } INTRODUÇÃO A LINGUAGEM C

#include <stdio.h> Void main() { printf( Cheguei!\n); } INTRODUÇÃO A LINGUAGEM C #include Void main() { printf( Cheguei!\n"); } INTRODUÇÃO A LINGUAGEM C ANTES DO C ERA A LINGUAGEM B B foi essencialmente uma simplificação da linguagem BCPL. B só tinha um tipo de dado, que

Leia mais

Programação I PRG Engenharia de Telecomunicações 2ª Fase Professor: Cleber Jorge Amaral

Programaçã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 mais

Aula 2 Comandos de Decisão

Aula 2 Comandos de Decisão Departamento de Sistemas de Computação Universidade de São Paulo SSC 502 Laboratório de Introdução a Ciência de Computação I Aula 2 Comandos de Decisão Responsável Prof. Seiji Isotani (sisotani@icmc.usp.br)

Leia mais

Legibilidade do código fonte

Legibilidade do código fonte Sumário Legibilidade do código fonte Exemplos Normas Instrução switch Sintaxe e Semântica Exemplo Tipos enumerados Exemplo Programação 2007/2008 DEEC-IST 1 Legibilidade do código fonte Exemplo: Considere

Leia mais

Programação de Computadores I Introdução ao C PROFESSORA CINTIA CAETANO

Programaçã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 mais

imprimir seus quadrados.

imprimir seus quadrados. 1) Dada uma seqüência de números inteiros não-nulos, seguida por 0, imprimir seus quadrados. int numero, /* usada para leitura da sequencia */ quadrado; /* guarda o quadrado do numero lido */ printf("\n\tcalculo

Leia mais

INF 1620 P1-18/09/04 Questão 1 Nome:

INF 1620 P1-18/09/04 Questão 1 Nome: INF 1620 P1-18/09/04 Questão 1 Considerando a definição da série harmônica abaixo: H n =1+ 1 2 + 1 3 + 1 4 + 1 5 + K+ 1 n (a) Escreva uma função que calcule o valor de H n dado o número de termos da série

Leia mais

INF 1620 P2-17/05/08 Questão 1 Nome:

INF 1620 P2-17/05/08 Questão 1 Nome: INF 620 P2-7/05/08 Questão Considere um cadastro de produtos de um estoque, com as seguintes informações: Código de Identificação do produto: representado por um número inteiro Nome do produto: com até

Leia mais

INF 1620 P3-25/11/05 Questão 1 Nome:

INF 1620 P3-25/11/05 Questão 1 Nome: INF 1620 P3-25/11/05 Questão 1 Dizemos que uma matriz quadrada é um quadrado mágico se a soma dos elementos de cada linha, a soma dos elementos de cada coluna e a soma dos elementos de sua diagonal principal

Leia mais

A linguagem C (visão histórica)

A linguagem C (visão histórica) A linguagem C (visão histórica) A linguagem C é uma linguagem de programação desenvolvida no ínício dos anos 70 por Dennis Ritchie, que trabalhava nos laboratórios Bell e que também inciou em paralelo,

Leia mais

1ª versão. #include <stdio.h> #include <string.h> #include <stdlib.h> #define maxdiscos 1000

1ª versão. #include <stdio.h> #include <string.h> #include <stdlib.h> #define maxdiscos 1000 #include #include #include #define maxdiscos 1000 typedef struct { char nomeautor[80]; char nomedisco[100]; int numdiscosvendidos; DISCO; 1ª versão int main() { DISCO listadiscos[maxdiscos];

Leia mais

Computação 2. Aula Profª. Fabiany Listas Duplamente Encadeadas

Computação 2. Aula Profª. Fabiany Listas Duplamente Encadeadas Computação 2 Aula 10.1 Listas Duplamente Encadeadas Profª. Fabiany fabianyl@utfpr.edu.br ListaEncadeada.h #ifndef _LISTAENCADEADA_H_ #define _LISTAENCADEADA_H_ #include #include #include

Leia mais

Vetores II. Strings Leitura e exibição Biblioteca string.h Operações com Strings. Matrizes Definição de Acesso Operações com Matrizes

Vetores II. Strings Leitura e exibição Biblioteca string.h Operações com Strings. Matrizes Definição de Acesso Operações com Matrizes Strings Leitura e exibição Biblioteca string.h Operações com Strings Matrizes Definição de Acesso Operações com Matrizes Utilidade da String Facilidade de manipulação de um grande conjunto de caracteres

Leia mais

Universidade Estadual de Mato Grosso do Sul Ciência da Computação Algoritmos e Estruturas de Dados I (AED-I) Prof. Nilton

Universidade Estadual de Mato Grosso do Sul Ciência da Computação Algoritmos e Estruturas de Dados I (AED-I) Prof. Nilton Universidade Estadual de Mato Grosso do Sul Ciência da Computação Algoritmos e Estruturas de Dados I (AED-I) Prof. Nilton nilton@comp.uems.br Introdução A linguagem C foi inventada por Dennis Ritchie e

Leia mais

INF 1620 P1-04/10/03 Questão 1 Nome:

INF 1620 P1-04/10/03 Questão 1 Nome: INF 1620 P1-04/10/03 Questão 1 a) Implemente uma função para calcular as raízes de uma equação do segundo grau do tipo ax 2 +bx+c=0. O protótipo dessa função deve ser: void raizes (float a, float b, float

Leia mais

INF 1620 P3-29/06/04 Questão 1 Nome:

INF 1620 P3-29/06/04 Questão 1 Nome: INF 1620 P3-29/06/04 Questão 1 Considere um arquivo texto que descreve um conjunto de retângulos e círculos. Cada linha do arquivo contém a descrição de uma figura. O primeiro caractere da linha indica

Leia mais

Resumo da matéria: - Sintaxe da definição duma função C: - Diagramas sintácticos do if e dos mecanismos de ciclos em C:

Resumo da matéria: - Sintaxe da definição duma função C: - Diagramas sintácticos do if e dos mecanismos de ciclos em C: Aula de PGI 15.4.2014 Exercícios que envolvem ciclos e funções Resumo da matéria: - Sintaxe da definição duma função C: tipovalorretorno nomedafuncao( tipo nomevar, tipo nomevar1 ){ int v; // Aqui consta

Leia mais

Programação de Computadores II

Programação de Computadores II Programação de Computadores II 2017.2 Relembrando... Linguagem C Relembrando... Linguagem C Declaração básica de um programa Relembrando... Linguagem C Declaração básica de um programa include Relembrando...

Leia mais

Estruturas de Dados Aula 6: Cadeias de 28/03/2010

Estruturas de Dados Aula 6: Cadeias de 28/03/2010 Estruturas de Dados Aula 6: Cadeias de Caracteres 28/03/2010 Caracteres Caracteres são representados internamente por códigos numéricos Tipo char (inteiro pequeno ) 1 byte (8 bits) 256 caracteres possíveis

Leia mais

Estruturas de Dados Aula 6: Cadeias de Caracteres

Estruturas de Dados Aula 6: Cadeias de Caracteres Estruturas de Dados Aula 6: Cadeias de Caracteres Caracteres Caracteres são representados internamente por códigos numéricos Tipo char (inteiro pequeno ) 1 byte (8 bits) 256 caracteres possíveis Códigos

Leia mais

INF 1620 P4-01/07/08 Questão 1 Nome:

INF 1620 P4-01/07/08 Questão 1 Nome: INF 1620 P4-01/07/08 Questão 1 Escreva uma função em C que receba duas strings, cujos caracteres estão ordenados em ordem crescente, e retorne uma nova string alocada dinamicamente, que contém todos os

Leia mais

Computadores Digitais 2. Prof. Rodrigo de Souza Couto

Computadores Digitais 2. Prof. Rodrigo de Souza Couto Computadores Digitais 2 Linguagens de Programação DEL-Poli/UFRJ Prof. Miguel Campista Aula de Hoje Tipos Estruturados Tipo estrutura Definição de novos tipos Aninhamento de Estruturas Vetores de estruturas

Leia mais

Aula 02 -Introdução àlinguagc Programação: Estrutura-Seleção. OPL e IC1 Prof: Anilton Joaquim da Silva

Aula 02 -Introdução àlinguagc Programação: Estrutura-Seleção. OPL e IC1 Prof: Anilton Joaquim da Silva Aula 02 -Introdução àlinguagc Programação: Estrutura-Seleção OPL e IC1 Prof: Anilton Joaquim da Silva Anilton.ufu@outlook.com 1 Estrutura de Seleção Até agora não aprendemos a dizer para o computador Se

Leia mais

Introdução à Linguagem C

Introdução à Linguagem C Engenharia de CONTROLE e AUTOMAÇÃO Introdução à Linguagem C Aula 02 DPEE 1038 Estrutura de Dados para Automação Curso de Engenharia de Controle e Automação Universidade Federal de Santa Maria beltrame@mail.ufsm.br

Leia mais

Linguagem C. IF61A/IF71A - Computação 1 Prof. Leonelo Almeida. Universidade Tecnológica Federal do Paraná

Linguagem C. IF61A/IF71A - Computação 1 Prof. Leonelo Almeida. Universidade Tecnológica Federal do Paraná Linguagem C IF61A/IF71A - Computação 1 Prof. Leonelo Almeida Universidade Tecnológica Federal do Paraná Até agora... Sabemos construir algoritmos que tenham: Variáveis Comandos sequenciais Entrada e saída

Leia mais

Módulo 3 Controle de Fluxo

Módulo 3 Controle de Fluxo Estruturas de Dados Módulo 3 Controle de Fluxo 16/8/2005 (c) Marco A. Casanova - PUC-Rio 1 Referências Waldemar Celes, Renato Cerqueira, José Lucas Rangel, Introdução a Estruturas de Dados, Editora Campus

Leia mais

Hello World. Linguagem C. Tipos de Dados. Palavras Reservadas. Operadores Aritméticos. Pré e pós incremento e pré e pós decremento

Hello World. Linguagem C. Tipos de Dados. Palavras Reservadas. Operadores Aritméticos. Pré e pós incremento e pré e pós decremento Hello World Linguagem C printf("hello world!\n"); main é a função principal, a execução do programa começa por ela printf é uma função usada para enviar dados para o vídeo Palavras Reservadas auto double

Leia mais

Curso de C. Declaração de Variáveis 18/3/ :48 1

Curso de C. Declaração de Variáveis 18/3/ :48 1 Curso de C Declaração de Variáveis 18/3/2008 15:48 1 Declaração de Variáveis Objetivos: Aprender como: Criar variáveis Atribuir um valor inicial à variável Escolher um nome para a variável 18/3/2008 15:48

Leia mais

Anhanguera Educacional S.A. Centro Universitário Ibero-Americano

Anhanguera Educacional S.A. Centro Universitário Ibero-Americano O C++ foi inicialmente desenvolvido por Bjarne Stroustrup durante a década de 1980 com o objetivo de melhorar a linguagem de programação C, mantendo a compatibilidade com esta linguagem. Exemplos de Aplicações

Leia mais

UNIVERSIDADE LUSÓFONA DE HUMANIDADES E TECNOLOGIAS 2º Semestre 2013/2014

UNIVERSIDADE LUSÓFONA DE HUMANIDADES E TECNOLOGIAS 2º Semestre 2013/2014 UNIVERSIDADE LUSÓFONA DE HUMANIDADES E TECNOLOGIAS 2º Semestre 2013/2014 Programação em C 18/06/2014 Leia com atenção as perguntas e justifique cuidadosamente todas as respostas 1. Qual o objetivo de uma

Leia mais

Computação 2. Aula 7. Profª. Fabiany Ponteiros

Computação 2. Aula 7. Profª. Fabiany Ponteiros Computação 2 Aula 7 Ponteiros Profª. Fabiany fabianyl@utfpr.edu.br O que são Ponteiros? Um ponteiro é uma variável que contém um endereço de memória. Este endereço é normalmente a posição de uma outra

Leia mais

CURSO SUPERIOR DE TECNOLOGIA EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS DISCIPLINA : INTRODUÇÃO À LÓGICA DE PROGRAMAÇÃO ASSUNTO: C

CURSO SUPERIOR DE TECNOLOGIA EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS DISCIPLINA : INTRODUÇÃO À LÓGICA DE PROGRAMAÇÃO ASSUNTO: C CURSO SUPERIOR DE TECNOLOGIA EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS DISCIPLINA : INTRODUÇÃO À LÓGICA DE PROGRAMAÇÃO ASSUNTO: C PROFESSOR : Romilson Lopes Sampaio Estruturas de Repetição São três estruturas

Leia mais

Aluno: Valor Nota Q1 3.0 Q2 2.5 Q3 2.5 Q4 2.0 Total 10.0

Aluno: Valor Nota Q1 3.0 Q2 2.5 Q3 2.5 Q4 2.0 Total 10.0 P4 Programação II 2012.2 Departamento de Informática/PUC- Rio Aluno: Matrícula: Turma: 1. A prova é sem consulta e sem perguntas. A interpretação do enunciado faz parte da prova. 2. A prova deve ser completamente

Leia mais

Lógica e Linguagem de Programação Convertendo um algoritmo em pseudocódigo para a linguagem C Professor: Danilo Giacobo

Lógica e Linguagem de Programação Convertendo um algoritmo em pseudocódigo para a linguagem C Professor: Danilo Giacobo Lógica e Linguagem de Programação Convertendo um algoritmo em pseudocódigo para a linguagem C Professor: Danilo Giacobo Este documento explica como transformar um algoritmo escrito na forma pseudocódigo

Leia mais

Introdução a Programação. Tipos Estruturados de Dados

Introdução a Programação. Tipos Estruturados de Dados Introdução a Programação Tipos Estruturados de Dados Tópicos da Aula Hoje aprenderemos a trabalhar com tipos de dados mais complexos Tipos Primitivos x Tipos Estruturados Conceito de Tipos Estruturados

Leia mais

Disciplina de Algoritmos e Programação

Disciplina de Algoritmos e Programação Disciplina de Algoritmos e Programação Último Conteúdo Estruturas de condição Estrutura condicional simples Utilização da estrutura de condição if com expressões lógicas simples Utilização do comando if

Leia mais

Introdução à Linguagem C

Introdução à Linguagem C Introdução à Linguagem C Eduardo Simões de Albuquerque Instituto de Informática UFG 13/03/2006 1 História Inventada e desenvolvida por Dennis Ritchie em um DEC- PDP 11 Originária de: BCPL desenvolvida

Leia mais

Básico: estrutura de programa, sintaxe Interface com linha de comando

Básico: estrutura de programa, sintaxe Interface com linha de comando Programação em C Sintaxe Básico: estrutura de programa, sintaxe Interface com linha de comando Preprocessamento e compilação Makefiles Ponteiros e estruturas Bibliotecas, ficheiros include e funções Referências

Leia mais

INF 1620 P1-17/09/05 Questão 1 Nome:

INF 1620 P1-17/09/05 Questão 1 Nome: INF 1620 P1-17/09/05 Questão 1 Considere as equações de movimento para calcular a posição (s) e velocidade (v) de uma partícula em um determinado instante t, dado sua aceleração a, posição inicial s 0

Leia mais

Conceitos básicos. Computação eletrônica: Gurvan Huiban

Conceitos básicos. Computação eletrônica: Gurvan Huiban Computação eletrônica: Conceitos básicos Gurvan Huiban ghuiban@cin.ufpe.br Plano de aula 1 Estrutura de um programa em C 2 Variáveis e constantes 3 Comandos de entrada e saída Estrutura de um programa

Leia mais

TAD: Tipo Abstrato de Dados (parte 2)

TAD: Tipo Abstrato de Dados (parte 2) TAD: Tipo Abstrato de Dados (parte 2) SCC0502 Algoritmos e Estruturas de Dados I Programa em C pode ser dividido em vários arquivos Arquivos fonte com extensão.c Denominados de módulos Cada módulo deve

Leia mais

Linguagem C. Ponteiros. Alex Vidigal Bastos.

Linguagem C. Ponteiros. Alex Vidigal Bastos. Linguagem C Ponteiros Alex Vidigal Bastos alexvbh@gmail.com Ponteiros Ponteiros são variáveis que contém endereços. Estas variáveis apontam para algum determinado endereço da memória. Em geral, o ponteiro

Leia mais

Programação de Computadores

Programação de Computadores Programação de Computadores Apresentação da Disciplina Prof. Fabio Henrique N. Abe fabio.henrique.abe@gmail.com 99642-5002 http://www.comp.uems.br/~fhna/ Programação de Computadores Carga Horária da Disciplina

Leia mais

Prática - Linguagem C. Exercícios - Desenvolvendo um pequeno projeto

Prática - Linguagem C. Exercícios - Desenvolvendo um pequeno projeto Universidade Federal Rural de Pernambuco - UFRPE Departamento de Estatística e Informática - DEINFO DISCIPLINA: Paradigmas de Programação PROFESSOR: Gláucya Carreiro Boechat Prática - Linguagem C Exercícios

Leia mais

Linguagens e Programação BISON. Paulo Proença

Linguagens e Programação BISON. Paulo Proença Linguagens e Programação BISON BISON Gerador de analisadores sintáticos. Converte uma gramática independente de contexto LARL(1) 1 num programa C capaz de processar frases da linguagem. Gramática LARL(1)

Leia mais

Métodos Computacionais. Tipos Estruturados

Métodos Computacionais. Tipos Estruturados Métodos Computacionais Tipos Estruturados Tipos Estruturados C oferece tipos primitivos que servem para representar valores simples Reais (float, double), inteiros (int), caracter (char) C oferece também

Leia mais

Linguagens de Programação

Linguagens de Programação Linguagens de Programação 128 13 129 Linguagens de Programação Uma linguagem de programação é um vocabulário e um conjunto de regras gramaticais usadas para escrever programas de computador. Esses programas

Leia mais

Strings. Introdução. Definição de strings. Criação/Declaração de strings. Inicialização de strings. Manipulação de strings. Exemplos.

Strings. Introdução. Definição de strings. Criação/Declaração de strings. Inicialização de strings. Manipulação de strings. Exemplos. Introdução Definição de strings. Criação/Declaração de strings. Inicialização de strings. Manipulação de strings. Exemplos. 1 definições Uma string é uma sequência, um conjunto, ou uma cadeia de caracteres.

Leia mais

TAD: Tipo Abstrato de Dados (parte 2)

TAD: Tipo Abstrato de Dados (parte 2) TAD: Tipo Abstrato de Dados (parte 2) SCC0202 Algoritmos e Estruturas de Dados I Prof. Thiago A. S. Pardo Modularização em C Programa em C pode ser dividido em vários arquivos Arquivos fonte com extensão.c

Leia mais

O que faz/o que é Como usar Como funciona Formato geral do Arquivo Submetido ao Lex ER estendidas Exemplos The Lex & YACC page:

O que faz/o que é Como usar Como funciona Formato geral do Arquivo Submetido ao Lex ER estendidas Exemplos The Lex & YACC page: O que faz/o que é Como usar Como funciona Formato geral do Arquivo Submetido ao Lex ER estendidas Exemplos The Lex & YACC page: http://dinosaur.compilertools.net/ 1 O que faz Lex gera programas (em C)

Leia mais

Utiliza Expressões Regulares (ER) Estendidas para definir a especificação da análise léxica desejada

Utiliza Expressões Regulares (ER) Estendidas para definir a especificação da análise léxica desejada O que faz/o que é Como usar Como funciona Formato geral do Arquivo Submetido ao Lex ER estendidas Exemplos The Lex & YACC page: http://dinosaur.compilertools.net/ 1 O que faz Lex gera programas (em C)

Leia mais

USP - ICMC - SSC SSC o. Semestre Disciplina de Introdução à Computação para Engenharia Ambiental

USP - ICMC - SSC SSC o. Semestre Disciplina de Introdução à Computação para Engenharia Ambiental USP - ICMC - SSC SSC 0301-2o. Semestre 2013 Disciplina de Introdução à Computação para Engenharia Ambiental Prof. Dr. Fernando Santos Osório LRM - Laboratório de Robótica Móvel do ICMC / CROB-SC Email:

Leia mais

INF 1620 P1-11/04/08 Questão 1 Nome:

INF 1620 P1-11/04/08 Questão 1 Nome: INF 1620 P1-11/04/08 Questão 1 Nas Olimpíadas, em uma determinada modalidade esportiva, os competidores recebem a nota de quatro jurados e a nota final é o resultado da média das quatro notas menos um

Leia mais

Linguagem C (estruturas condicionais)

Linguagem C (estruturas condicionais) Linguagem C (estruturas condicionais) André Tavares da Silva atavares@joinville.udesc.br Comandos de Controle de Fluxo Todos os comandos devem ser terminados com um ;. { e são usados para delimitar um

Leia mais

INF 1620 P3-27/11/04 Questão 1 Nome:

INF 1620 P3-27/11/04 Questão 1 Nome: INF 1620 P3-27/11/04 Questão 1 Considere um arquivo texto com as notas dos alunos de uma disciplina. Os dados de cada aluno são armazenados em duas linhas do arquivo: uma com o seu nome (cadeia com até

Leia mais

3. Linguagem de Programação C

3. 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 Principais Tópicos 3.5. Vetores 3.5.1. Vetores 3.5.2. Strings 3.5.3.

Leia mais

Introdução à Programação. Expressões Booleanas e Comandos Condicionais

Introdução à Programação. Expressões Booleanas e Comandos Condicionais Introdução à Programação Expressões Booleanas e Comandos Condicionais Comandos Condicionais Misture os ingredientes Unte forma com manteiga Despeje a mistura na forma Algoritmo para preparação de bolo

Leia mais

Modulo 3: Else, Case, For...

Modulo 3: Else, Case, For... PROGRAMAÇÃO DE COMPUTADORES V - TCC- 00.323 Modulo 3: Else, Case, For... Aura - Erick aconci@ic.uff.br, erickr@id.uff.br Roteiro Mais Comandos Condicionais Estrutura de Repetição Contável 2 Exemplo de

Leia mais

1 d=

1 d= O que faz/o que é Como usar / Como funciona Formato geral do Arquivo Submetido ao Lex ER estendidas / Exemplos The Lex & YACC page: http://dinosaur.compilertools.net/ Flex: versão livre http://simplesamples.info/c++/flex.php

Leia mais

Linguagem de Programação I. Aula 06 Linguagem C: Tipos de Dados

Linguagem de Programação I. Aula 06 Linguagem C: Tipos de Dados Linguagem de Programação I Aula 06 Linguagem C: Tipos de Dados Da Aula Anterior Linguagens de Programação A Linguagem C: Como tudo começou Principais características da Linguagem C O primeiro programa

Leia mais

INF 1620 P4 11/12/06 Questão 1 Nome:

INF 1620 P4 11/12/06 Questão 1 Nome: INF 1620 P4 11/12/06 Questão 1 Considere que o cálculo da multa para o pagamento de um determinado imposto varia de acordo com a tabela a seguir: Valor do Imposto Original Multa por mês de atraso até R$

Leia mais

Vetores e Strings. 4. Funções Básicas para manipulação de Strings. A função gets() lê uma string do teclado. Sua forma geral é:

Vetores e Strings. 4. Funções Básicas para manipulação de Strings. A função gets() lê uma string do teclado. Sua forma geral é: 4. Funções Básicas para manipulação de Strings - gets A função gets() lê uma string do teclado. Sua forma geral é: gets (nome_da_string); 187 - gets (continuação) Exemplo: Vetores e Strings 188 #include

Leia mais

Linguagem C Princípios Básicos (parte 1)

Linguagem C Princípios Básicos (parte 1) Linguagem C Princípios Básicos (parte 1) Objetivos O principal objetivo deste artigo é explicar alguns conceitos fundamentais de programação em C. No final será implementado um programa envolvendo todos

Leia mais

Estruturas da linguagem C. 1. Identificadores, tipos primitivos, variáveis e constantes, operadores e expressões.

Estruturas da linguagem C. 1. Identificadores, tipos primitivos, variáveis e constantes, operadores e expressões. 1 Estruturas da linguagem C 1. Identificadores, tipos primitivos, variáveis e constantes, operadores e expressões. Identificadores Os identificadores seguem a duas regras: 1. Devem ser começados por letras

Leia mais

Departamento de Informática - PUC-Rio INF 1007 Programação 2 P3 23/06/2010

Departamento de Informática - PUC-Rio INF 1007 Programação 2 P3 23/06/2010 Departamento de Informática - PUC-Rio INF 1007 Programação 2 P3 23/06/2010 Aluno: Instruções: 1) Escreva seu nome completo, matrícula e turma em todas as folhas desta prova; 2) A prova deve ser completamente

Leia mais

Programação de Computadores II

Programação de Computadores II Programação de Computadores II 2018.2 Bibliotecas Biblioteca é uma conjunto de subprogramas utilizados na programação que contém código e dados auxiliares externos ao programa principal, o que permite

Leia mais

Fundamentos de Programação 1

Fundamentos de Programação 1 Fundamentos de Programação 1 Linguagem C Arquivos Seqüências ou de Texto. Slides 18 Prof. SIMÃO Jean Marcelo SIMÃO 1 Arquivo de Escrita 1 fopen ( nome.txt", "w" ); fputc ( caracter, arquivo); 2 #include

Leia mais

Linguagem de Programação C

Linguagem de Programação C Linguagem de Programação C Aula 08 Diogo Pinheiro Fernandes Pedrosa Universidade Federal Rural do Semiárido Departamento de Ciências Exatas e Naturais 13 de novembro de 2009 Introdução O que é uma linguagem

Leia mais

ESTRUTURAS COMPOSTAS

ESTRUTURAS COMPOSTAS ESTRUTURAS COMPOSTAS Variáveis Compostas Unidimensionais VETOR Clique para adicionar texto Profa. Dra. Elisa Yumi Nakagawa 1. Semestre de 2017 Slides inicialmente preparados pela Profa. Rosely Sanches

Leia mais

Listas (cont.) K&R: Capitulo 6. Lista Simplesmente Ligada IAED, 2012/2013. Conjunto de nós. Cada nó contém. head NULL. typedef struct node {

Listas (cont.) K&R: Capitulo 6. Lista Simplesmente Ligada IAED, 2012/2013. Conjunto de nós. Cada nó contém. head NULL. typedef struct node { Listas (cont.) K&R: Capitulo 6 Lista Simplesmente Ligada Conjunto de nós head NULL Cada nó contém Informação útil Ponteiro para o próimo nó typedef struct node Item item; struct node *net; *link; Item

Leia mais

C++ - Matrizes. Observ.: C++ não avisa quando o limite de uma matriz foi excedido. Providenciar a verificação é responsabilidade do programador.

C++ - Matrizes. Observ.: C++ não avisa quando o limite de uma matriz foi excedido. Providenciar a verificação é responsabilidade do programador. C++ - Matrizes É um conjunto de variáveis, do mesmo tipo, referenciadas por um único nome, onde cada variável é diferenciada por meio de um número entre colchetes chamado índice. Declaração : tipo nome

Leia mais

Lógica de Programação I

Lógica de Programação I Gilson de Souza Carvalho gaucho.gilson@hotmail.com 1 Comando Switch O comando Switch pode ser visto como uma especialização do comando if. Foi criado para facilitar um uso particular de comandos if encadeados.

Leia mais

Linguagem de Programação. Thiago Leite Francisco Barretto

Linguagem de Programação. Thiago Leite Francisco Barretto Linguagem de Programação Thiago Leite Francisco Barretto SCHILDT, H. C Completo e Total. 3ª Edição. São Paulo: Makron, 1997. Bibliografia Ementa

Leia mais

Algoritmos e Técnicas de Programação. Professora: Luciana Faria

Algoritmos e Técnicas de Programação. Professora: Luciana Faria Algoritmos e Técnicas de Programação Professora: Luciana Faria Estrutura de Controle Múltipla: Switch...case Switch... case Atribui o valor da direita à variável da esquerda Permite que várias condições

Leia mais

Algoritmos RESUMO - LINGUAGEM C

Algoritmos RESUMO - LINGUAGEM C Algoritmos RESUMO - LINGUAGEM C 1 Sintaxe da linguagem C Componentes reconhecidos pela linguagem C (sintaxe da linguagem): tipos propriedades dos dados; declarações partes do programa, podendo dar significado

Leia mais

Lex Adaptação da obra original de Tom Niemann

Lex Adaptação da obra original de Tom Niemann LEX Lex Adaptação da obra original de Tom Niemann Durante a primeira fase, o compilador lê a entrada e converte as strings na origem para os tokens. Com expressões regulares, podemos especificar padrões

Leia mais

Programação Estruturada Prof. Rodrigo Hausen Agregados de Dados Heterogêneos (structs)

Programação Estruturada Prof. Rodrigo Hausen   Agregados de Dados Heterogêneos (structs) Programação Estruturada Prof. Rodrigo Hausen http://progest.compscinet.org Agregados de Dados Heterogêneos (structs) 1 AGREGADO HOMOGÊNEO Um agregado homogêneo de dados é um conjunto de dados que são necessariamente

Leia mais

MC-102 Aula 21 Registros

MC-102 Aula 21 Registros MC-102 Aula 21 Registros Instituto de Computação Unicamp 27 de Outubro de 2016 Roteiro 1 Registros Declarando um novo tipo de Registro Acessando os campos de um Registro Lendo e Escrevendo Registros Atribuição

Leia mais

Módulo 8 Tipos Estruturados

Módulo 8 Tipos Estruturados Estruturas de Dados Módulo 8 Tipos Estruturados 9/8/2005 (c) Dept. Informática - PUC-Rio 1 Referências Waldemar Celes, Renato Cerqueira, José Lucas Rangel, Introdução a Estruturas de Dados, Editora Campus

Leia mais

Utilização da Linguagem C

Utilização da Linguagem C Histórico Criada em 1972 por Dennis Ritchie Usada no desenvolvimento do sistema operacional Unix no Bell Labs C foi derivada da linguagem B, desenvolvida por Ken Thompson Linguagem procedural de alto nível

Leia mais

5 - COMANDOS DE CONTROLE DE PROGRAMA Em C existem os comandos de decisões, os comandos de iteração (ou de laços) e os comandos de desvios.

5 - COMANDOS DE CONTROLE DE PROGRAMA Em C existem os comandos de decisões, os comandos de iteração (ou de laços) e os comandos de desvios. 3636363636363636363636363636363636363636363636363636 5 - COMANDOS DE CONTROLE DE PROGRAMA Em C existem os comandos de decisões, os comandos de iteração (ou de laços) e os comandos de desvios. 5.1 - Comandos

Leia mais

Linguagem C. Linguagem artificial e formal usada para comunicar instruções ao computador. Proposta por Dennis Ritchie entre 1969 e 1973.

Linguagem C. Linguagem artificial e formal usada para comunicar instruções ao computador. Proposta por Dennis Ritchie entre 1969 e 1973. Aula 2 05/03/2015 Linguagem C Linguagem artificial e formal usada para comunicar instruções ao computador. Proposta por Dennis Ritchie entre 1969 e 1973. Um programa em C é Texto que segue as regras formais

Leia mais

Tipos de Dados Definidos Pelo Usuário. Estruturas Uniões Enumerações O Comando sizeof O Comando typedef

Tipos de Dados Definidos Pelo Usuário. Estruturas Uniões Enumerações O Comando sizeof O Comando typedef Tipos de Dados Definidos Pelo Usuário Uniões Enumerações O Comando sizeof O Comando typedef Uma estrutura agrupa várias variáveis numa só. Funciona como uma ficha pessoal que tenha nome, telefone e endereço.

Leia mais