OPTIMIZAÇÃO NÃO LINEAR
|
|
- Thiago Palhares Nobre
- 5 Há anos
- Visualizações:
Transcrição
1 OPTIMIZAÇÃO NÃO LINEAR Opção IV - LESI Interface de ligação ao AMPL 2004/2005
2 Optimização não linear - Opção IV - LESI 1 Esquema de ligações Standard Input Files AMPL.nl file.col file.row file.sol file AMPL interface routines SIPAMPL interface routines SIP solver MATLAB to SIPAMPL interface routines (sipampl2.c and.m files) MATLAB solver finite solver (NSIPS) (fseminf)
3 Optimização não linear - Opção IV - LESI 2 Exemplo em AMPL - hs014.mod var x {1..2; minimize obj: (x[1] - 2)^2 + (x[2]-1)^2; subject to constr1: x[1]^2/4 + x[2]^2 <= 1; subject to constr2: x[1] - 2*x[2] = -1; let x[1] := 2; let x[2] := 2;
4 Optimização não linear - Opção IV - LESI 3 #printf "optimal solution as starting point \n"; #let x[1] := ; #let x[2] := ; solve; display x; display obj; display obj *sqrt(7);
5 Optimização não linear - Opção IV - LESI 4 Comentários Problema com n = 2, m = 2 (uma restrição de desigualdade e uma de igualdade). Aproximação inicial x = (2, 2) T. Solução do problema como comentário. O comando solve indica ao AMPL que se pretende resolver o problema. O AMPL escreve um ficheiro temporário de extensão.nl e executa o solver com os argumentos stub -AMPL. Como não se usou a opção solver (por exemplo option solver loqo;) o AMPL executa o solver por defeito (minos). O AMPL suspende a sua execução até que o solver termine e produza um ficheiro de extensão.sol.
6 Optimização não linear - Opção IV - LESI 5 Obter o ficheiro.nl O AMPL remove os ficheiros temporário. Para obtermos o ficheiro usa-se a instrução write gstub;. Por exemplo, depois de removido o comando solve do ficheiro hs014.mod faz-se: ampl: model hs014.mod; x [*] := ; obj = 1 obj *sqrt(7) = ampl: write ghs014; Obtendo-se o ficheiro hs014.nl, colocado no directório corrente.
7 Optimização não linear - Opção IV - LESI 6 Interface do AMPL A interface do AMPL (ligação entre o AMPL e o solver) fornece um conjunto de estruturas e subrotinas que permitem: carregar o problema para a memória (ler o ficheiro.nl); obter os dados relativos ao problema (n, m, limites simples, etc.) obter o valor da função objectivo, das restrições e das suas derivadas (1 as e 2 as ). guardar a solução encontrada (escrever o ficheiro.sol); carregar um conjunto externo de funções (biblioteca dinâmica).
8 Optimização não linear - Opção IV - LESI 7 A estrutura ASL (AMPL/Solver interface Library) A estrutura ASL contém grande parte dos dados relativos ao problema. A inclusão do ficheiro de cabeçalho (header file) getstub.h inclui também o ficheiro asl.h. O ficheiro asl.h fornece também uma lista de #defines para facilitar o acesso ao apontador asl declarado. A memória para o apontador asl é alocada com asl = ASL alloc(asl Type); e o ficheiro aberto com FILE *jac dim(asl *asl, char *stub, int *m, int *n, int *no, int *nz, int *mxr, int *mxc, (fint)strlen(stub));
9 Optimização não linear - Opção IV - LESI 8 Funções de carregamento As possibilidades para o ASL Type são Função reader ASL Type informação f read ASL read f sem derivadas fg read ASL read fg primeiras derivadas fgh read ASL read fgh segundas derivadas pfg read ASL read pfg primeiras derivadas com estruturas de separação pfgh read ASL read pfgh segundas derivadas com estruturas de separação O protótipo das funções reader é int reader(file *nl, int flags);
10 Optimização não linear - Opção IV - LESI 9 Componentes ASL Componente Tipo Descrição LUrhs real* Array de limites inferiores (e se Urhsx nulo, superiores) nas restrições LUv real* Array de limites inferiores (e se Uvx nulo, superiores) nas variáveis Urhsx real* Array de limites superiores nas restrições Uvx real* Array de limites superiores nas variáveis X0 real* Aproximação inicial primal havex0 char* Se não nulo havex0[i]!=0 significa que X[i] foi especificado n con int Número de restrições n obj int Número de funções objectivo objtype char* Tipo de função objectivo: 0 == min, 1 == max pi0 real* Aproximação inicial dual want deriv int ==0 não linear sem derivadas, ==1 não linear com derivadas
11 Optimização não linear - Opção IV - LESI 10 Avaliação das funções não lineares Função objectivo real objval(int nobj, real *x, fint *nerror) Gradiente da função objectivo void objgrd(int nobj, real *x, real *g, fint *nerror) Restrições void conval(real *x, real *r, fint *nerror) Jacobiano void jacval(real *x, real *j, fint *ne) Uma restrição real conival(int ncon, real *x,fint *nerror)
12 Optimização não linear - Opção IV - LESI 11 Gradiente de uma restrição void congrd(int ncon, real *x, real *g, fint *nerror) Produto da Hessiana por um vector (último valor de x) void hvcomp(real *hv, real *P, int nobj, real *ow, real *y) hv=wp em que W = 2 n obj 1 ow[i]f i + σ n con 1 y[i]c i i=0 i=0 σ é usualmente +1 (defeito) ou 1 e pode ser modificado com void lagscale(real sigma, fint *nerror)
13 Optimização não linear - Opção IV - LESI 12 Calculo da Hessiana (matriz W) fullhes(real *h, fint lh, int nobj, real *ow, real *y) h[i + j lh] = W i,j
14 Optimização não linear - Opção IV - LESI 13 Bibliografia David M. Gay, Hooking Your Solver to AMPL, Technical report , Bell Laboratories, Disponível em
15 Optimização não linear - Opção IV - LESI 14 #include "mlocpsoa.h" Um exemplo static double objsign; static fint NERROR = -1; #define asl cur_asl char mlocpsoa_version[]="mlocpsoa v1.1"; /* This struct member names must be in alphabetic order, for binary search */ keyword keywds[] = { KW("cognitial", mloc_opt_d, (Char*)&opt.mu, "Cognitial parameter"), KW("fweight", mloc_opt_d, (Char*)&opt.fweight, "Final velocity weight"), KW("halton", mloc_opt_i, (Char*)&opt.halton, "Halton (=1) or uniform (=0) initial population"), KW("iweight", mloc_opt_d, (Char*)&opt.iweight, "Initial velocity weight"), KW("maxiter", mloc_opt_i, (Char*)&opt.maxiter, "Maximum iterations allowed"), KW("maxvf", mloc_opt_d, (Char*)&opt.maxvfactor, "Factor for maximum allowed velocity"), KW("mlocal", mloc_opt_i, (Char*)&opt.mlocal,
16 Optimização não linear - Opção IV - LESI 15 "Multilocal (=1) or global (=0) optimization"), KW("prog", mloc_opt_i, (Char*)&opt.prog, "Number of allowed iteration without progress"), KW("size", mloc_opt_i, (Char*)&opt.s, "Swarm size"), KW("social", mloc_opt_d, (char*)&opt.nu, "Social factor (gradient factor)"), KW("verb", mloc_opt_i, (char*)&opt.verb, "Verbosity (0=quiet,1=short info,2=all info)"), ; struct Option_Info Oinfo = { "mlocpsoa", "MLOCPSOA", "mlocpsoa_options", keywds, nkeywds, 1, mlocpsoa_version, 0, NULL; /********************************************** Set options. String type **********************************************/ char *mloc_opt_s(option_info *oi, keyword *kw, char *value) { char *s; /* never echo options */ oi->option_echo &= ~ASL_OI_echo;
17 Optimização não linear - Opção IV - LESI 16 if(!strncmp("method", kw->name, 6)){ s=value; while(*s!= && *s!=0) s++; if(s<=value) return value; if(!strncmp("disc_hett", value, 9)){ *(int *)kw->info=0; /*DISC_METHOD;*/ printf("discretization method selected Hettich version\n"); return s; /* unknown method */ return value; /* not implemented option */ return value; /********************************************** Set options. Integer type **********************************************/ char *mloc_opt_i(option_info *oi, keyword *kw, char *value) {
18 Optimização não linear - Opção IV - LESI 17 long optval; char *s; /* never echo options */ oi->option_echo &= ~ASL_OI_echo; optval=strtol(value, &s, 10); if(s > value){ /* existing integer number */ *(int *)kw->info=(int)optval; if(opt.verb) printf("\ndefault option %s=%d accepted\n", kw->name, *(int *)kw->info); return s; return value; /********************************************** Set options. Double type **********************************************/ char *mloc_opt_d(option_info *oi, keyword *kw, char *value) { double optval; char *s; /* never echo options */ oi->option_echo &= ~ASL_OI_echo;
19 Optimização não linear - Opção IV - LESI 18 optval=strtod(value, &s); if(s > value){ /* existing double number */ *(double *)kw->info=optval; if(opt.verb) printf("\ndefault option %s=%.6f accepted\n", kw->name, *(double *)kw->info); return s; return value; static Jmp_buf Jb; void catchfpe(int n) { report_where(asl); printf("\nfloating point error.\n"); fflush(stdout); longjmp(jb.jb,1); int main(int argc, char **argv) { char *stub;
20 Optimização não linear - Opção IV - LESI 19 ASL *asl; FILE *nl; fint m, n, no, nz, mxr, mxc; int i, exit_code, warnings=0; double *sol=null; double *f=null; double *lb, *ub, *lbt, *ubt, *tmp; asl = ASL_alloc(ASL_read_fg); stub = getstops(argv, &Oinfo); nl=jac_dim_asl(asl, stub, &m, &n, &no, &nz, &mxr, &mxc, (fint)strlen(stub)); if (!nl){ printf("error: Can t read problem\n"); exit(1); if(m){ printf("\n\nwarning:\n"); printf("warning: Problem has %d constraint",m); if(m>1)printf("s\n"); else printf("\n"); printf("warning: MLOCPSOA does not support constrained optimization problems\n", m); printf("warning: Constraints will be ignored\n", m); printf("warning:\n");
21 Optimização não linear - Opção IV - LESI 20 warnings++; ; want_deriv = opt.mlocal; /* no derivs in the global case */ fg_read_asl(asl, nl, 0); if(n_obj<1){ printf("error: At least one objective is requested\n"); exit(1); if(n_obj>1){ printf("\nwarning: Current implentation only supports one objective function\n"); printf("\nwarning: Considering only the first objective\n"); warnings++; dense_j(); objsign = objtype[0]? 1. : -1.; /* objsign = -1 minimization problem */ /* objsign = 1 maximization problem */ err_jmp1 = &Jb; if (!setjmp(jb.jb)){
22 Optimização não linear - Opção IV - LESI 21 signal(sigfpe, catchfpe); /* lower and upper bounds on variables */ lbt=lb=malloc(n*sizeof(double)); ubt=ub=malloc(n*sizeof(double)); if(!lb!ub){ printf("error: Unable to allocate memory for variable bounds\n"); exit(1); tmp=luv; for(i=0;i<n;i++){ if(*tmp<-inf){ printf("\nwarning: Lower bound on variable %d not set\n",i); warnings++; *lbt++=*tmp++; if(*tmp>inf){ printf("\nwarning: Upper bound on variable %d not set\n",i); warnings++; *ubt++=*tmp++; exit_code=mlocpsoa(n, &objfun, lb, ub, &sol, f); write_sol("solution found by MLOCPSOA", sol, NULL, &Oinfo); /* free allocated memory */
23 Optimização não linear - Opção IV - LESI 22 free(lb); free(ub); free(sol); if(warnings){ if(warnings==1)printf("\nwarning: There was 1 warning\n"); else printf("\nwarning: There were %d warnings\n", warnings); if(opt.verb)printf("\n%s\n", exit_codes[exit_code].msg); return exit_code; /* Function to be passed to the mlocpsoa function. args in: n -> dimension x -> point mode -> 0: only objective 1: only gradient 2: objective and gradient args out: grd -> gradient of objective at x */ double objfun(int n, double *x, int mode, double *grd) { double *g;
24 Optimização não linear - Opção IV - LESI 23 if(mode && grd){ objgrd(0, x, grd, NULL); if(objsign < 0) for(g=grd+n-1;g>=grd;g--) *g=-*g; if(mode!=1) return objsign*objval(0,x,null); else return 0.0;
Métodos Numéricos. MEI - Logística e distribuição Linguagem de modelação AMPL 2004/2005. A. Ismael F. Vaz - Departamento de Produção e Sistemas
Métodos Numéricos MEI - Logística e distribuição Linguagem de modelação AMPL 2004/2005 Métodos Numéricos - MEI 1 AMPL AMPL significa A Mathematical Programming Language. O AMPL é um software comercial,
Leia maisBruno Hott Algoritmos e Estruturas de Dados I DECSI UFOP. Alocação Dinâmica de Memória
Bruno Hott Algoritmos e Estruturas de Dados I DECSI UFOP Alocação Dinâmica de Memória Alocação Estática x Dinâmica C: dois tipos de alocação de memória: Estática e Dinâmica Na alocação estática, o espaço
Leia maisIury Steiner de Oliveira Bezerra
Algoritmos genéticos (Matlab) MATLAB Optimization Toolbox Iury Steiner de Oliveira Bezerra Tópicos Introdução Otimização de funções Optimization Toolbox Rotinas / Algoritmos Disponíveis Problemas de minimização
Leia maisBá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 maisListas (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 maisMétodos Numéricos. MEI - Logística e distribuição Programação quadrática sequencial 2004/2005. A. Ismael F. Vaz - Departamento de Produção e Sistemas
Métodos Numéricos MEI - Logística e distribuição Programação quadrática sequencial 2004/2005 Métodos Numéricos - MEI 1 Motivação Considere-se o seguinte exemplo de um problema de minimização com restrições
Leia maisSistemas de Operação (2018/2019) Ficha 2
Sistemas de Operação (2018/2019) Ficha 2 Q1. Recorde a definição de número complexo z C. Um número complexo z tem a forma a + bi, onde a, b R. Os valores a e b representam, respectivamente, as partes real
Leia mais1º Exame 14 de Junho de Duração: 2h30 (+15 min) Número: Nome: Notas
Exame A Programação MEEC 2º Semestre 2017/18 1º Exame 14 de Junho de 2018. Duração: 2h30 (+15 min) Número: Nome: Notas Composição do teste: 4 folhas com problemas para resolver. Existem 9 problemas para
Leia maisControlo de Execução. K&R: Capitulo 3
Controlo de Execução K&R: Capitulo 3 IAED, 2009/2010 Controlo de Execução Instruções e Blocos if else-if switch Ciclos: Instruçõeswhile e for Instruçãodo-while break e continue goto e labels 2 IAED, 2009/2010
Leia maisPonteiros e Tabelas. K&R: Capítulo 5
Ponteiros e Tabelas K&R: Capítulo 5 Ponteiros e Tabelas Ponteiros e endereços Ponteiros e argumentos de funções Ponteiros e tabelas Alocação dinâmica de memória Aritmética de ponteiros Tabelas de ponteiros
Leia maisProgramação de Computadores II
Programação de Computadores II 1. Programação Básica 2019.1 Slides adaptados do material de Karina Mochetti Problema, Algoritmo, Programa Um programa de computador é a implementação de um algoritmo para
Leia maisOptimização semi-infinita. Opção V. Licenciatura em Matemática Aplicada
Optimização semi-infinita Opção V Licenciatura em Matemática Aplicada EXERCÍCIOS TEÓRICO-PRÁTICOS Ano lectivo de 2006/2007 1 Condições de optimalidade - Optimização não linear finita 1.1 Detere e classifique,
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 maisInstituto Superior Técnico Introdução aos Algoritmos e Estruturas de Dados
Instituto Superior Técnico Introdução aos Algoritmos e Estruturas de Dados Ano Lectivo de 2006/2007 2 o Semestre 1 o Teste A - 12 de Abril de 2007 Duração: 2h - O teste é sem consulta. - Para cada questão
Leia maisPonteiros e Tabelas. K&R: Capitulo 5 IAED, 2012/2013
Ponteiros e Tabelas K&R: Capitulo 5 Ponteiros e Tabelas Ponteiros e endereços Ponteiros e argumentos de funções Ponteiros e tabelas Alocação dinâmica de memória Aritmética de ponteiros Tabelas de ponteiros
Leia maisPonteiros e Tabelas. K&R: Capitulo 5 IAED, 2012/2013
Ponteiros e Tabelas K&R: Capitulo 5 Ponteiros e Tabelas Ponteiros e endereços Ponteiros e argumentos de funções Ponteiros e tabelas Alocação dinâmica de memória Aritmética de ponteiros Tabelas de ponteiros
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 maisSistemas de Operação (2018/2019) Teste de Auto-Avaliação Prática
Sistemas de Operação (2018/2019) Teste de Auto-Avaliação Prática (duração 1 hora) Resolva as 3 questões que se seguem da forma mais independente possível, evitando consultar a Internet ou os materiais
Leia maisecos - Gestores de dispositivos
ecos - Gestores de dispositivos gestores de dispositivos ( device drivers ) interface aplicacional (API) gestor de linha série raw serial driver tty driver ecos - device driver - user API cyg_io_lookup
Leia maisA 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 mais1/24 FICHEIROS DE TEXTO
1/24 FICHEIROS DE TEXTO Hardware de entrada/saída 2/24 Hardware de entrada/saída Grande variedade de dispositivos de E/S (Input/Output) - de memória: disco interno e externo, DVD, pen, CD,... - de transmissão:
Leia maisFUNÇÕES EM C Material adaptado da profa Silvana Maria Affonso de Lara
Universidade do Estado de Minas Gerais - UEMG Curso de Engenharia da Computação FUNÇÕES EM C 1 Material adaptado da profa Silvana Maria Affonso de Lara ROTEIRO DA AULA Definição de Função Argumentos, retornos
Leia maisLinguagem C Ficheiros Compilação Separada
Linguagem C Ficheiros Compilação Separada typedef definição de tipos Apontadores para estruturas Ficheiros na bibiloteca standard do C Compilação Separada Definição de novos tipos em C É possível definir
Leia maisProgramação em C++: Introdução
Programação em C++: Introdução J. Barbosa J. Tavares Conceitos básicos de programação Algoritmo Conjunto finito de regras sobre as quais se pode dar execução a um dado processo (Knuth73v1) Ex: ordenação
Leia maisADTs (Abstract Data Types): Motivação
ADTs (Abstract Data Types): Motivação Mesmas estruturas são usadas com vários tipos de dados Listas Pilhas Amontoado FIFOs Inteiros Reais Strings Estruturas O procedimento para inserir um inteiro, real,
Leia maisIntrodução à linguagem C++
Estrutura de Dados e Algoritmos e Programação e Computadores II Aula 2: Introdução à linguagem C++ Introdução à linguagem C++ Conceitos básicos: variáveis, tipos de dados, constantes, I/O, etc. Estruturas
Leia maisTipos Abstratos de Dados. Estrutura de Dados
Tipos Abstratos de Dados Tipo Abstrato de Dados ou TAD Idéia principal: desvincular o tipo de dado (valores e operações) de sua implementação: O que o tipo faz e não como ele faz! Vantagens da desvinculação:
Leia maisPascal. -Cabeçalho do programa. - label - const - type - var - procedure - function. - integer - real - byte - boolean - char - string
Pascal -Cabeçalho do programa Áreas do programa -Área de declarações -Corpo do programa - label - const - type - var - procedure - function - integer - real - byte - boolean - char - string Program
Leia maisPonteiros & tabelas (cont.) K&R: Capítulo 5
Ponteiros & tabelas (cont.) K&R: Capítulo 5 Sinopse da aula de hoje Pointers in a nutshell & alocação dinâmica de memória Estruturas, funções e apontadores Estruturas auto-referenciadas Exemplo de aplicação:
Leia maisListas (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 maisResoluções do pteste(matlab).pdf
Resoluções do pteste(matlab).pdf 1. Resolução do pteste1 pelo fminsearch do MATLAB function [f] = pteste1(x) f=max((x(1)+x(2)),abs(x(1)*x(2))); >> x0=[1;1]; >> [x,fval,exitflag,output]=fminsearch('pteste1',x0)
Leia maisprim = A ; prim = &A[0];
57 12 - MAIS SOBRE APONTADOR 12.1 - Ponteiros e arrays Em C, ponteiros e matrizes são tratados de maneira semelhante. 12.1.1 - Nome O nome é um ponteiro, ou seja, aponta (contém o endereço) para o primeiro
Leia maisProgramação Estruturada
Programação Estruturada Ponteiros Parte 1 Professores Emílio Francesquini e Carla Negri Lintzmayer 2018.Q3 Centro de Matemática, Computação e Cognição Universidade Federal do ABC Ponteiros Ponteiro Ponteiros
Leia maisSistemas de Operação (2018/2019) Ficha 4
Sistemas de Operação (2018/2019) Ficha 4 Q1. Considere a seguinte implementação de um comando mycat (semelhante ao cat da shell Bash) utilizando directamente a API do Unix (system calls) em vez da Biblioteca
Leia maisSumário. Ficheiros. Ficheiros
Sumário Ficheiros Motivação Operações Ficheiros de texto e binários Manipulação de ficheiros de texto Abertura Encerramento Descritores de ficheiros: stdin, stdout, stderr Escrita Leitura Outras funções
Leia maisOutline. 33. Manipulação de arquivos DIM
Outline 33. Manipulação de arquivos DIM031 015.1 Leitura e escrita 3 s DIM031 33. Manipulação de arquivos 015.1 1 / 4 DIM031 33. Manipulação de arquivos 015.1 / 4 Arquivo = entidade de armazenamento de
Leia maisInstituto Superior Técnico Algoritmos e Estruturas de Dados
Instituto Superior Técnico Algoritmos e Estruturas de Dados Ano Lectivo de 2005/2006 2 o Semestre 1 o Teste A - 8 de Abril de 2006 Duração: 2h - O teste é sem consulta. - Para cada questão com escolha
Leia maisProgramação. MEAer e LEE. Manipulação de ficheiros de texto. Bertinho Andrade da Costa. Instituto Superior Técnico. 2010/2011 1º Semestre
Programação MEAer e LEE Bertinho Andrade da Costa 2010/2011 1º Semestre Instituto Superior Técnico Manipulação de ficheiros de texto Programação 2010/2011 IST-DEEC Manipulação de Ficheiros 1 Sumário Ficheiros
Leia maisDEM-Sec.Sistemas Tipos Abstractos de Informação 2006 / Programação
Funções DEM-Sec.Sistemas Tipos Abstractos de Informação 2006 / 07 1 Programação modular Programação modular: divir um programa em módulos mais pequenos Função: um conjunto de instruções que desempenham
Leia maisLinguagem C. Produção de programas em C (Ligação dinâmica) João Pedro Patriarca
Capítulo 7, secções 10-12 Linguagem C Produção de programas em C (Ligação dinâmica) Centro de Cálculo Instituto Superior de Engenharia de Lisboa João Pedro Patriarca (jpatri@cc.isel.ipl.pt) Ligação estática
Leia maisUNIVERSIDADE 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 maisINF 1620 P2-01/11/03 Questão 1 Nome:
INF 1620 P2-01/11/03 Questão 1 Considere a implementação de uma lista encadeada para armazenar as notas dos alunos de uma turma dada pelo tipo abaixo: struct lista { char nome[81]; int mat; float p1, p2,
Leia maisBravas shield light sample app 2017
Funcionamento A aplicação exemplo executa a leitura de duas entradas digitais da Shield Bravas e escreve nas saídas a relé da seguinte forma: Entrada digital 1 ativa: Reles 1 acionado. Entrada digital
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 maisBravas shield sample app 2017
Funcionamento A aplicação exemplo executa a leitura de duas entradas digitais da Shield Bravas e escreve nas saídas a relé da seguinte forma: Entrada digital 1 ativa: Reles são acionados, um a um, do relé
Leia maisOPTIMIZAÇÃO NÃO LINEAR
OPTIMIZAÇÃO NÃO LINEAR Opção IV - LESI Método de penalidade para PSI 2004/2005 Optimização não linear - Opção IV - LESI 1 Formulação - Programação Semi-Infinita (PSI) min f(x) x R n s.t. g i (x, t) 0,
Leia maisComputação e Programação
Computação e Programação 10ª Aula de Problemas Tópicos Avançados sobre Funções Instituto Superior Técnico, Dep. de Engenharia Mecânica - ACCAII Problema 1 3. The velocity of sound in air is 49.02xT^(1/2)
Leia maisAna Paula Tomás. Departamento de Ciência de Computadores Faculdade de Ciências da Universidade do Porto 2010/2011
Ana Paula Tomás Departamento de Ciência de Computadores Faculdade de Ciências da Universidade do Porto 2010/2011 Aula 1 Objectivos e programa da disciplina. Critérios de avaliação. Um primeiro programa
Leia maisElementos de entrada e saída com arquivos
Elementos de entrada e saída com arquivos David Deharbe 1 1 Conceitos Por enquanto vimos como realizar entradas (leitura): do teclado e saídas (impressão): na tela. Em geral, pode-se usar rotinas muito
Leia maisO que é um apontador em C (type pointer in C)?
O que é um apontador em C (type pointer in C)? Um apontador é uma variável que contém um endereço de outra variável. int x = 10;//variável inteira iniciada com o valor 10 int *px = &x;//variável apontadora
Leia maisCriação de Processos Fork( ) Exec( )
Criação de Processos Fork( ) Exec( ) 8/23/18 1 Chamadas de Sistema: Process Management 2 Chamada fork( ) / exec( ) 3 Esboço de uma shell while (TRUE) { /* repeat forever */ type_prompt( ); /* display prompt
Leia maisComputação 2. Aula 8. Profª. Fabiany Arquivos
Computação 2 Aula 8 Arquivos Profª. Fabiany fabianyl@utfpr.edu.br E/S com Arquivos A linguagem C não possui nenhum comando de E/S. Todas as operações de E/S ocorrem mediante chamadas a funções de biblioteca
Leia maisProgramação 5374 : Engenharia Informática 6638 : Tecnologias e Sistemas de Informação. Cap. 7 Arrays. Arrays
5374 : Engenharia Informática 6638 : Tecnologias e Sistemas de Informação Cap. 7 Sumário: Classificação de tipos de dados Características gerais de tipos de dados compostos Definição de array (ou tabela)
Leia maisConceitos Básicos de C
Conceitos Básicos de C Bibliografia Problem Solving & Program design in C, Jeri R. Hanly e Elliot B. Kpffman, 3 a edição Data Structures and Algorithm Analysis in C, Mark Allen Weiss, 2 a edição, Addison-Wesley,
Leia maisProfa. Thienne Johnson EACH/USP
Profa. Thienne Johnson EACH/USP Declarando classes usando generics Métodos que usam um parâmetro de tipo como tipo de retorno Declaração da classe BasicGeneric: class BasicGeneric Contém o parâmetro
Leia maisponteiros INF Programação I Prof. Roberto Azevedo
ponteiros INF1005 -- Programação I -- 2016.1 Prof. Roberto Azevedo razevedo@inf.puc-rio.br ponteiros tópicos o que são ponteiros operadores usados com ponteiros passagem de ponteiros para funções referência
Leia maisTipos de Dados, Tipos Abstratos de Dados Estruturas de Dados
Tipos de Dados, Tipos Abstratos de Dados Estruturas de Dados Tipo de dados, tipo abstrato de dados, estruturas de dados Termos parecidos, mas com significados diferentes Tipo de dado Em linguagens de programação
Leia maisPROGRAMAÇÃO DE MICROPROCESSADORES 2007 / 2008
Departamento de Engenharia Electrotécnica PROGRAMAÇÃO DE MICROPROCESSADORES 2007 / 2008 Mestrado Integrado em Engenharia Electrotécnica e Computadores 1º ano 1º semestre Ficheiros e estruturas http://tele1.dee.fct.unl.pt
Leia maisSistemas Operacionais e Introdução à Programação. Programação com linguagem C
Sistemas Operacionais e Introdução à Programação Programação com linguagem C 1 Entrada e saída: escrevendo na tela Veja uma comparação entre um programa Portugol e seu equivalente em C: Inicio Inteiro
Leia maisFaculdade de Computação
Faculdade de Computação Programação Procedimental 1 o Laboratório de Programação C Prof. Cláudio C. Rodrigues 1. Introdução O objetivo desta aula prática é exercitar o uso de variáveis de vários tipos
Leia maisCurso de Programação C em Ambientes Linux Aula 05
Curso de Programação C em Ambientes Linux Aula 05 Centro de Engenharias da Mobilidade - UFSC Professores Gian Berkenbrock e Giovani Gracioli http://www.lisha.ufsc.br/c+language+course+resources Conteúdo
Leia maisDepartamento 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 maisIntrodução à Lógica de Programação
Sistemas Operacionais e Introdução à Programação Introdução à Lógica de Programação Programação Tradução de um algoritmo para uma linguagem de programação Cada linguagem de programação possui sua sintaxe
Leia maisEXERCÍCIO DE SONDAGEM TURMA 02 SEMESTRE DATA: 01/11/2016. Matrícula Nome Nota
Universidade Federal de Campina Grande Centro de Engenharia Elétrica e Informática Departamento de Sistemas e Computação Disciplina: Técnicas de Programação Prof.: José Eustáquio Rangel de Queiroz EXERCÍCIO
Leia maisOProtocolo RPC é um dos protocolos de aplicação mais utilizados, pois permite
Laboratório de Redes. Remote Procedure Call - RPC Pedroso 9 de março de 2006 1 Introdução 2 Conceitos básicos OProtocolo RPC é um dos protocolos de aplicação mais utilizados, pois permite que sejam criadas
Leia maisAnálise Semântica e Tratamento de Erros Dependentes de Contexto
Análise Semântica e Tratamento de Erros Dependentes de Contexto O componente Semântico de uma LP Tarefas da Análise Semântica Implementação da Tabelas de Símbolos Ações Semânticas em Compiladores Dirigidos
Leia maisLinguagem 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 maisMemória partilhada em Unix SysV
Memória partilhada em Unix SysV A forma mais geral de comunicação entre processos é através de memória partilhada. segmento de memoria partilhada Processo A Processo B p q Criação de um segmento de memória
Leia maisFunções. definição, declaração e chamada
Funções definição, declaração e chamada Funções Em C, um programa é uma coleção de FUNÇÕES. Uma função é um bloco de código que recebe um nome e que tem possivelmente PARÂMETROS. A partir do nome, o bloco
Leia maisEXERCÍCIO DE SONDAGEM TURMA 01 SEMESTRE DATA: 01/11/2016. Matrícula Nome Nota
Universidade Federal de Campina Grande Centro de Engenharia Elétrica e Informática Departamento de Sistemas e Computação Disciplina: Técnicas de Programação Prof.: José Eustáquio Rangel de Queiroz EXERCÍCIO
Leia maisIntrodução à Programação Aula 07. Prof. Max Santana Rolemberg Farias Colegiado de Engenharia de Computação
Introdução à Programação Aula 07 Prof. Max Santana Rolemberg Farias max.santana@univasf.edu.br Colegiado de Engenharia de Computação ARGUMENTOS POR LINHA DE COMANDO 2 Argumento por linha de comando Na
Leia maisAlgoritmos e Estruturas de Dados: Tabela de Dispersão com Encadeamento
Algoritmos e Estruturas de Dados: Tabela de Dispersão com Encadeamento Rômulo Silva de Oliveira Departamento de Automação e Sistemas DAS UFSC romulo@das.ufsc.br http://www.das.ufsc.br/~romulo Maio/011
Leia maisINTRODUÇÃO À LINGUAGEM PASCAL PREFÁCIO
INTRODUÇÃO À LINGUAGEM PASCAL CESAR BEZERRA TEIXEIRA,MSC PREFÁCIO A linguagem C foi desenvolvida no início da década de 70 por dois pesquisadores do Bell Laboratories, Brian Kernihgan e Dennis Ritchie,
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 - Gerenciamento de Memória Copyright 2014 IFRN Agenda Introdução Alocação dinâmica Funções malloc free calloc realloc
Leia maisCOMPUTAÇÃO E PROGRAMAÇÃO
COMPUTAÇÃO E PROGRAMAÇÃO 1º Semestre 2015/2016 MEMec, LEAN Ficha da Aula Prática 6: Cadeias de caracteres (strings). Estruturas de dados (structures). Sumário das tarefas e objectivos da aula: 1. Utilizar
Leia maisINF 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 maisComunicação entre Processos Memória Compartilhada
Comunicação entre Processos Memória Compartilhada 3/23/17 1 Métodos de comunicação entre processos Memória compartilhada Sinais Pipes Troca de mensagens Memória Compartilhada Memória compartilhada Permite
Leia maisEXERCÍCIO DE SONDAGEM SEMESTRE DATAS: 21/06/2016 (TURMAS 01 E 02) Matrícula Nome Nota
Professor de INTRODUÇÃO À PROGRAMAÇÃO Universidade Federal de Campina Grande Centro de Engenharia Elétrica e Informática Departamento de Sistemas e Computação Disciplina: Técnicas de Programação Prof.:
Leia maisEstruturas de Dados. Introdução Definição de Ponteiros Declaração de Ponteiros em C Manipulação de Ponteiros em C
Estruturas de Dados Revisão de Ponteiros Prof. Ricardo J. G. B. Campello Sumário Introdução Definição de Ponteiros Declaração de Ponteiros em C Manipulação de Ponteiros em C Operações Ponteiros e Arranjos
Leia maisRevisão Linguagem C Parte 1
Revisão Linguagem C Parte 1 Comentários: Os comentários aparecem em verde e podem iniciados com /* e encerrados com */ quando utilizase várias linhas ou coloca-se // quando forem colocados em apenas uma
Leia maisEntender o problema Encontrar um algoritmo para resolvê-lo. Implementar o algoritmo numa linguagem de programação
Entender o problema Encontrar um algoritmo para resolvê-lo Implementar o algoritmo numa linguagem de programação Permitem implementar um algoritmo Expressar o algoritmo numa forma que o computador entenda
Leia maisIury Steiner de Oliveira Bezerra
Algoritmos genéticos (Matlab) MATLAB Optimization Toolbox Iury Steiner de Oliveira Bezerra Msc. Iury Steiner Tópicos Introdução Otimização de funções Optimization Toolbox Rotinas / Algoritmos Disponíveis
Leia mais4 MDP. void média e dp(int a[],int n,float em,float ed) 7. Variáveis auxiliares 7. Faça ed igual ao desvio padrão 6 }
1 MDP INTRODUCÃO 1 1. Introducão. Esta é uma demonstração do sistema CWEB (veja http://www.ime.usp.br/~pf/ CWEB/) de Knuth e Levy. Um programa CWEB, como este que você está lendo, é uma espécie de jogo
Leia maisLegibilidade 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 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 maisProgramação Imperativa. Lição n.º 1 Preliminares
Programação Imperativa Lição n.º 1 Preliminares Preliminares Apresentação. A programação na LEI. O que é um computador? O que é um programa? Linguagens de programação. A linguagem de programação C. Bibliografia.
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@ifrn.edu.br
Leia maisPonteiros. um ponteiro é uma variável que contém o endereço um dado declaração: * indica que a variável é um ponteiro. Ex: tipo_dado *nome_ponteiro;
Ponteiros um ponteiro é uma variável que contém o endereço um dado declaração: * indica que a variável é um ponteiro Ex: tipo_dado *nome_ponteiro; /* compilador sabe que pi é ponteiro */ /* pi é um ponteiro
Leia maisEstruturas 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 maisUniversidade de São Paulo São Carlos Instituto de Ciências Matemáticas e de Computação. Material preparado pela profa Silvana Maria Affonso de Lara
Universidade de São Paulo São Carlos Instituto de Ciências Matemáticas e de Computação FUNÇÕES EM C 1 Material preparado pela profa Silvana Maria Affonso de Lara 2º semestre de 2010 ROTEIRO DA AULA Definição
Leia maisINSTITUTO SUPERIOR TÉCNICO Algoritmos e Estruturas de Dados
INSTITUTO SUPERIOR TÉCNICO Algoritmos e Estruturas de Dados Ano Lectivo de 2002/2003 2 o Semestre 2 o Teste A 9 de Junho de 2003 Duração: 2h - O teste é sem consulta. - Para cada questão com escolha múltipla
Leia mais1 Exercícios com ponteiros
Computação para Informática Funções e Ponteiros1 EXERCÍCIOS COM PONTEIROS Computação para Informática - Prof. Adriano Joaquim de Oliveira Cruz Aula Prática - Funções e ponteiros O objetivo desta aula prática
Leia maisSubprogramas. (ou Sub-rotinas) em C: Procedimentos e Funções. 2015/1 Programação Básica de Computadores (INF 09325)
Subprogramas (ou Sub-rotinas) em C: Procedimentos e Funções 2015/1 Programação Básica de Computadores (INF 09325) Archimedes Detoni www.inf.ufes.br/~archimedesdetoni archimedesdetoni@inf.ufes.br Programa
Leia mais1.2 OPERAÇÕES BÁSICAS EM ALGORITMOS E PROGRAMAS 18
ÍNDICE MÓDULO 1 INTRODUÇÃO À ALGORITMIA 11 1.1 PROGRAMAS E ALGORITMOS 12 Fases da programação 12 Algoritmos e algoritmia 13 Algoritmos em linguagem informal, pseudocódigo e fluxogramas 14 Símbolos utilizados
Leia maisProgramação com Posix Threads
9 Programação com Posix Threads Revisão: Data: 11-03-2016 Cap. 9 1/6 Programação multi-threaded com Pthreads 9.1. O que é uma thread? Um processo represente a execução pelo sistema operativo dum programa.
Leia maisBruno Hott Algoritmos e Estruturas de Dados I DECSI UFOP. Alocação Dinâmica de Memória
Bruno Hott Algoritmos e Estruturas de Dados I DECSI UFOP Alocação Dinâmica de Memória Alocação Estática x Dinâmica C: dois tipos de alocação de memória: Estática e Dinâmica Na alocação estática, o espaço
Leia maisProf. A. G. Silva. 13 de novembro de Prof. A. G. Silva INE5603 Introdução à POO 13 de novembro de / 1
INE5603 Introdução à POO Prof. A. G. Silva 13 de novembro de 2017 Prof. A. G. Silva INE5603 Introdução à POO 13 de novembro de 2017 1 / 1 Introdução à manipulação de arquivos Prof. A. G. Silva INE5603
Leia maisSintaxe do Pascal Simplificado Estendido de 12 novas construções em Notação EBNF (BNF estendida)
Sintaxe do Pascal Simplificado Estendido de 12 novas construções em Notação EBNF (BNF estendida) Não-terminais são nomes mnemônicos colocados entre parênteses angulares. Vocabulário terminal formado por
Leia mais