lac¸os: for x while entrada e sa´ıda abreviac¸oes˜ metodos...

42
et Comp C Lac ¸os: for X while Abreviac ¸˜ oes Entrada e Sa´ ıda Escrevendo em Arquivos Lendo de Arquivos “Debugando” gnuplot Exerc´ ıcio etodos Computacionais em F´ ısica Jos ´ e Helder Lopes Instituto de F´ ısica Universidade Federal do Rio de Janeiro Segundo Semestre de 2016

Upload: vuhanh

Post on 08-Dec-2018

217 views

Category:

Documents


0 download

TRANSCRIPT

Met Comp

CLacos: for X while

Abreviacoes

Entrada e Saıda

Escrevendo emArquivos

Lendo de Arquivos

“Debugando”

gnuplotExercıcio

Metodos Computacionais em Fısica

Jose Helder Lopes

Instituto de FısicaUniversidade Federal do Rio de Janeiro

Segundo Semestre de 2016

Met Comp

CLacos: for X while

Abreviacoes

Entrada e Saıda

Escrevendo emArquivos

Lendo de Arquivos

“Debugando”

gnuplotExercıcio

Programa que escolhe o maior - Sem laco

#include <stdio.h>int main(){float a, b, c;float max;printf("Entre com 3 numeros\n");scanf ("%f %f %f", &a, &b, &c);

max = -9999999;if (a > max) max = a;if (b > max) max = b;if (c > max) max = c;

printf("O maior numero e’: %f\n", max);return 0;

}

Met Comp

CLacos: for X while

Abreviacoes

Entrada e Saıda

Escrevendo emArquivos

Lendo de Arquivos

“Debugando”

gnuplotExercıcio

Programa que escolhe o maior - com for

#include <stdio.h>int main(){

float a;float max;int i;

max = -9999999;for (i = 1; i<= 3; i = i +1){

printf("Entre com o numero %d\n ",i);scanf ("%f", &a);if (a > max) max = a;

}printf("O maior numero e’: %f\n", max);return 0;

}

Met Comp

CLacos: for X while

Abreviacoes

Entrada e Saıda

Escrevendo emArquivos

Lendo de Arquivos

“Debugando”

gnuplotExercıcio

Programa que escolhe o maior - com while

#include <stdio.h>int main(){

float a;float max;int i;

max = -9999999;i = 1;while (i<= 3){

printf("Entre com o numero %d\n ",i);scanf ("%f", &a);if (a > max) max = a;i = i+1;

}printf("O maior numero e’: %f\n", max);return 0;

}

Met Comp

CLacos: for X while

Abreviacoes

Entrada e Saıda

Escrevendo emArquivos

Lendo de Arquivos

“Debugando”

gnuplotExercıcio

Abreviacoes

Existem algumas maneiras de abreviar comandos. Elasnao sao necessarias e podem tornar o programa de difıcilcompreensao

8 i = i + 1 Ü i++, ++i8 i = i - 1 Ü i- -, - -i8 soma = soma + n Ü soma + = n

Vale para os operadores aritmeticos: +, -, *, / e %.A forma geral e:

t = t operador expressao Ü t operador = expressaoa = a * 2; Ü a * = 2;a = a - b; Ü a - = b;

Met Comp

CLacos: for X while

Abreviacoes

Entrada e Saıda

Escrevendo emArquivos

Lendo de Arquivos

“Debugando”

gnuplotExercıcio

Abreviacoes

Existem algumas maneiras de abreviar comandos. Elasnao sao necessarias e podem tornar o programa de difıcilcompreensao

8 i = i + 1 Ü i++, ++i

8 i = i - 1 Ü i- -, - -i8 soma = soma + n Ü soma + = n

Vale para os operadores aritmeticos: +, -, *, / e %.A forma geral e:

t = t operador expressao Ü t operador = expressaoa = a * 2; Ü a * = 2;a = a - b; Ü a - = b;

Met Comp

CLacos: for X while

Abreviacoes

Entrada e Saıda

Escrevendo emArquivos

Lendo de Arquivos

“Debugando”

gnuplotExercıcio

Abreviacoes

Existem algumas maneiras de abreviar comandos. Elasnao sao necessarias e podem tornar o programa de difıcilcompreensao

8 i = i + 1 Ü i++, ++i8 i = i - 1 Ü i- -, - -i

8 soma = soma + n Ü soma + = nVale para os operadores aritmeticos: +, -, *, / e %.A forma geral e:

t = t operador expressao Ü t operador = expressaoa = a * 2; Ü a * = 2;a = a - b; Ü a - = b;

Met Comp

CLacos: for X while

Abreviacoes

Entrada e Saıda

Escrevendo emArquivos

Lendo de Arquivos

“Debugando”

gnuplotExercıcio

Abreviacoes

Existem algumas maneiras de abreviar comandos. Elasnao sao necessarias e podem tornar o programa de difıcilcompreensao

8 i = i + 1 Ü i++, ++i8 i = i - 1 Ü i- -, - -i8 soma = soma + n Ü soma + = n

Vale para os operadores aritmeticos: +, -, *, / e %.A forma geral e:

t = t operador expressao Ü t operador = expressaoa = a * 2; Ü a * = 2;a = a - b; Ü a - = b;

Met Comp

CLacos: for X while

Abreviacoes

Entrada e Saıda

Escrevendo emArquivos

Lendo de Arquivos

“Debugando”

gnuplotExercıcio

Abreviacoes

Existem algumas maneiras de abreviar comandos. Elasnao sao necessarias e podem tornar o programa de difıcilcompreensao

8 i = i + 1 Ü i++, ++i8 i = i - 1 Ü i- -, - -i8 soma = soma + n Ü soma + = n

Vale para os operadores aritmeticos: +, -, *, / e %.A forma geral e:

t = t operador expressao Ü t operador = expressaoa = a * 2; Ü a * = 2;a = a - b; Ü a - = b;

Met Comp

CLacos: for X while

Abreviacoes

Entrada e Saıda

Escrevendo emArquivos

Lendo de Arquivos

“Debugando”

gnuplotExercıcio

Entrada e Saıda: Formatacao

Ü Sintaxeprintf(”expressao de controle”,argumentos):

Ü existe um default para o numero de algarismos e casasdecimais.

Ü e possıvel controlar o numero de casas decimaisimpressas:

%md ⇒ sao usadas m casas para escrever onumero.

%m.nf ⇒ sao usadas m casas para escrever onumero, das quais n a direita do ponto.

printf(”x = %4d e y = %5.2f\n”, x, y);x = 1234 e y = 12.45

Met Comp

CLacos: for X while

Abreviacoes

Entrada e Saıda

Escrevendo emArquivos

Lendo de Arquivos

“Debugando”

gnuplotExercıcio

Entrada e Saıda: Escrevendo em Arquivos -fprintf

Ü Ja vimos como redirecionar a stdout

./programa > arquivo.saida

Ü e possıvel definir o arquivo dentro do programa8 Declarar um ponteiro para o arquivo:

FILE *arquivo = NULL;

8 Abrir o arquivo com a funcaofopen(nome, opcao)arquivo = fopen(”resultados.dat”,”w”);

8 Escrever usando o comandofprintf(arquivo,”expressao de controle”,argumentos);

fprintf(arquivo,”O resultado e %6.2f \n”, ValorFinal);

8 Fechar o arquivo com o comando fclosefclose(arquivo);

Met Comp

CLacos: for X while

Abreviacoes

Entrada e Saıda

Escrevendo emArquivos

Lendo de Arquivos

“Debugando”

gnuplotExercıcio

Entrada e Saıda: Escrevendo em Arquivos -fprintf

Ü e possıvel definir o arquivo dentro do programa

8 Declarar um ponteiro para o arquivo:FILE *arquivo = NULL;

8 Abrir o arquivo com a funcaofopen(nome, opcao)arquivo = fopen(”resultados.dat”,”w”);

8 Escrever usando o comandofprintf(arquivo,”expressao de controle”,argumentos);

fprintf(arquivo,”O resultado e %6.2f \n”, ValorFinal);

8 Fechar o arquivo com o comando fclosefclose(arquivo);

Met Comp

CLacos: for X while

Abreviacoes

Entrada e Saıda

Escrevendo emArquivos

Lendo de Arquivos

“Debugando”

gnuplotExercıcio

Entrada e Saıda: Escrevendo em Arquivos -fprintf

Ü e possıvel definir o arquivo dentro do programa8 Declarar um ponteiro para o arquivo:

FILE *arquivo = NULL;

8 Abrir o arquivo com a funcaofopen(nome, opcao)arquivo = fopen(”resultados.dat”,”w”);

8 Escrever usando o comandofprintf(arquivo,”expressao de controle”,argumentos);

fprintf(arquivo,”O resultado e %6.2f \n”, ValorFinal);

8 Fechar o arquivo com o comando fclosefclose(arquivo);

Met Comp

CLacos: for X while

Abreviacoes

Entrada e Saıda

Escrevendo emArquivos

Lendo de Arquivos

“Debugando”

gnuplotExercıcio

Entrada e Saıda: Escrevendo em Arquivos -fprintf

Ü e possıvel definir o arquivo dentro do programa8 Declarar um ponteiro para o arquivo:

FILE *arquivo = NULL;

8 Abrir o arquivo com a funcaofopen(nome, opcao)arquivo = fopen(”resultados.dat”,”w”);

8 Escrever usando o comandofprintf(arquivo,”expressao de controle”,argumentos);

fprintf(arquivo,”O resultado e %6.2f \n”, ValorFinal);

8 Fechar o arquivo com o comando fclosefclose(arquivo);

Met Comp

CLacos: for X while

Abreviacoes

Entrada e Saıda

Escrevendo emArquivos

Lendo de Arquivos

“Debugando”

gnuplotExercıcio

Entrada e Saıda: Escrevendo em Arquivos -fprintf

Ü e possıvel definir o arquivo dentro do programa8 Declarar um ponteiro para o arquivo:

FILE *arquivo = NULL;

8 Abrir o arquivo com a funcaofopen(nome, opcao)arquivo = fopen(”resultados.dat”,”w”);

8 Escrever usando o comandofprintf(arquivo,”expressao de controle”,argumentos);

fprintf(arquivo,”O resultado e %6.2f \n”, ValorFinal);

8 Fechar o arquivo com o comando fclosefclose(arquivo);

Met Comp

CLacos: for X while

Abreviacoes

Entrada e Saıda

Escrevendo emArquivos

Lendo de Arquivos

“Debugando”

gnuplotExercıcio

Entrada e Saıda: Escrevendo em Arquivos -fprintf

Ü e possıvel definir o arquivo dentro do programa8 Declarar um ponteiro para o arquivo:

FILE *arquivo = NULL;

8 Abrir o arquivo com a funcaofopen(nome, opcao)arquivo = fopen(”resultados.dat”,”w”);

8 Escrever usando o comandofprintf(arquivo,”expressao de controle”,argumentos);

fprintf(arquivo,”O resultado e %6.2f \n”, ValorFinal);

8 Fechar o arquivo com o comando fclosefclose(arquivo);

Met Comp

CLacos: for X while

Abreviacoes

Entrada e Saıda

Escrevendo emArquivos

Lendo de Arquivos

“Debugando”

gnuplotExercıcio

Entrada e Saıda: Escrevendo em Arquivos -fprintf

Ü e possıvel definir o arquivo dentro do programa8 Declarar um ponteiro para o arquivo:

FILE *arquivo = NULL;

8 Abrir o arquivo com a funcaofopen(nome, opcao)arquivo = fopen(”resultados.dat”,”w”);

8 Escrever usando o comandofprintf(arquivo,”expressao de controle”,argumentos);

fprintf(arquivo,”O resultado e %6.2f \n”, ValorFinal);

8 Fechar o arquivo com o comando fclosefclose(arquivo);

Met Comp

CLacos: for X while

Abreviacoes

Entrada e Saıda

Escrevendo emArquivos

Lendo de Arquivos

“Debugando”

gnuplotExercıcio

Entrada e Saıda: Lendo de Arquivos -fscanf

Ü Sintaxescanf(”expressao de controle”, enderecos dos

argumentos):scanf("%f ", &x);

Ü Apos abrir um arquivo para leitura,arquivo = fopen(”leitura.dat”,”r”);

Ü e testar se ele existe.if(arquivo != NULL ){ . . . }

Ü Ele pode ser lido com a funcaofscanf(arquivo,”expressao de controle”,enderecosdos argumentos);fscanf(arquivo,”%d%f”, &num, &valor);

Veja o arquivo/home/helder/MetComp/2016-2/Aula4/maior com arquivo.c

Met Comp

CLacos: for X while

Abreviacoes

Entrada e Saıda

Escrevendo emArquivos

Lendo de Arquivos

“Debugando”

gnuplotExercıcio

Entrada e Saıda: Lendo de Arquivos -fscanf

Ü Sintaxescanf(”expressao de controle”, enderecos dos

argumentos):scanf("%f ", &x);

Ü O redirecionamento de stdin pode ser feito com./programa < leitura.dat

Ü e possıvel abrir o arquivo com fopen

Ü Apos abrir um arquivo para leitura,arquivo = fopen(”leitura.dat”,”r”);

Ü e testar se ele existe.if(arquivo != NULL ){ . . . }

Ü Ele pode ser lido com a funcaofscanf(arquivo,”expressao de controle”,enderecosdos argumentos);fscanf(arquivo,”%d%f”, &num, &valor);

Veja o arquivo/home/helder/MetComp/2016-2/Aula4/maior com arquivo.c

Met Comp

CLacos: for X while

Abreviacoes

Entrada e Saıda

Escrevendo emArquivos

Lendo de Arquivos

“Debugando”

gnuplotExercıcio

Entrada e Saıda: Lendo de Arquivos -fscanf

Ü Sintaxescanf(”expressao de controle”, enderecos dos

argumentos):scanf("%f ", &x);

Ü Apos abrir um arquivo para leitura,arquivo = fopen(”leitura.dat”,”r”);

Ü e testar se ele existe.if(arquivo != NULL ){ . . . }

Ü Ele pode ser lido com a funcaofscanf(arquivo,”expressao de controle”,enderecosdos argumentos);fscanf(arquivo,”%d%f”, &num, &valor);

Veja o arquivo/home/helder/MetComp/2016-2/Aula4/maior com arquivo.c

Met Comp

CLacos: for X while

Abreviacoes

Entrada e Saıda

Escrevendo emArquivos

Lendo de Arquivos

“Debugando”

gnuplotExercıcio

Entrada e Saıda: Lendo de Arquivos -fscanf

Ü Sintaxescanf(”expressao de controle”, enderecos dos

argumentos):scanf("%f ", &x);

Ü Apos abrir um arquivo para leitura,arquivo = fopen(”leitura.dat”,”r”);

Ü e testar se ele existe.if(arquivo != NULL ){ . . . }

Ü Ele pode ser lido com a funcaofscanf(arquivo,”expressao de controle”,enderecosdos argumentos);fscanf(arquivo,”%d%f”, &num, &valor);

Veja o arquivo/home/helder/MetComp/2016-2/Aula4/maior com arquivo.c

Met Comp

CLacos: for X while

Abreviacoes

Entrada e Saıda

Escrevendo emArquivos

Lendo de Arquivos

“Debugando”

gnuplotExercıcio

Entrada e Saıda: Lendo de Arquivos -fscanf

Ü Sintaxescanf(”expressao de controle”, enderecos dos

argumentos):scanf("%f ", &x);

Ü Apos abrir um arquivo para leitura,arquivo = fopen(”leitura.dat”,”r”);

Ü e testar se ele existe.if(arquivo != NULL ){ . . . }

Ü Ele pode ser lido com a funcaofscanf(arquivo,”expressao de controle”,enderecosdos argumentos);

fscanf(arquivo,”%d%f”, &num, &valor);

Veja o arquivo/home/helder/MetComp/2016-2/Aula4/maior com arquivo.c

Met Comp

CLacos: for X while

Abreviacoes

Entrada e Saıda

Escrevendo emArquivos

Lendo de Arquivos

“Debugando”

gnuplotExercıcio

Entrada e Saıda: Lendo de Arquivos -fscanf

Ü Sintaxescanf(”expressao de controle”, enderecos dos

argumentos):scanf("%f ", &x);

Ü Apos abrir um arquivo para leitura,arquivo = fopen(”leitura.dat”,”r”);

Ü e testar se ele existe.if(arquivo != NULL ){ . . . }

Ü Ele pode ser lido com a funcaofscanf(arquivo,”expressao de controle”,enderecosdos argumentos);fscanf(arquivo,”%d%f”, &num, &valor);

Veja o arquivo/home/helder/MetComp/2016-2/Aula4/maior com arquivo.c

Met Comp

CLacos: for X while

Abreviacoes

Entrada e Saıda

Escrevendo emArquivos

Lendo de Arquivos

“Debugando”

gnuplotExercıcio

Exemplo:

#include <stdio.h>int main(){

float a;int i = 1; float max = -9999999;FILE *arqentrada = NULL;FILE *arqsaida = NULL;arqentrada = fopen("entrada.dat","r");if (arqentrada == NULL){

printf("O arquivo nao existe\n");return 1;

}while (i<= 3){

fscanf (arqentrada,"%f", &a);if (a > max) max = a;i = i+1;

}arqsaida = fopen("resultado.dat","w");fprintf(arqsaida,"O maior numero e’:%7.2f\n",max);fclose(arqentrada);fclose(arqsaida);return 0;

}

Met Comp

CLacos: for X while

Abreviacoes

Entrada e Saıda

Escrevendo emArquivos

Lendo de Arquivos

“Debugando”

gnuplotExercıcio

Algumas Observacoes

Ü fopenarquivo = fopen(”leitura.dat”,”r”);if(arquivo != NULL ){ . . . }

O valor NULL e atribuıdo a funcao fopen quando oarquivo leitura.dat nao pode ser aberto

Ü fscanfwhile (fscanf(arquivo,”%f”,&valores) != EOF) { . . . }O valor EOF e atribuıdo a funcao fscanf quando oarquivo arquivo chegar ao final

Met Comp

CLacos: for X while

Abreviacoes

Entrada e Saıda

Escrevendo emArquivos

Lendo de Arquivos

“Debugando”

gnuplotExercıcio

Algumas Observacoes

Ü fopenarquivo = fopen(”leitura.dat”,”r”);if(arquivo != NULL ){ . . . }O valor NULL e atribuıdo a funcao fopen quando oarquivo leitura.dat nao pode ser aberto

Ü fscanfwhile (fscanf(arquivo,”%f”,&valores) != EOF) { . . . }O valor EOF e atribuıdo a funcao fscanf quando oarquivo arquivo chegar ao final

Met Comp

CLacos: for X while

Abreviacoes

Entrada e Saıda

Escrevendo emArquivos

Lendo de Arquivos

“Debugando”

gnuplotExercıcio

Algumas Observacoes

Ü fopenarquivo = fopen(”leitura.dat”,”r”);if(arquivo != NULL ){ . . . }O valor NULL e atribuıdo a funcao fopen quando oarquivo leitura.dat nao pode ser aberto

Ü fscanfwhile (fscanf(arquivo,”%f”,&valores) != EOF) { . . . }

O valor EOF e atribuıdo a funcao fscanf quando oarquivo arquivo chegar ao final

Met Comp

CLacos: for X while

Abreviacoes

Entrada e Saıda

Escrevendo emArquivos

Lendo de Arquivos

“Debugando”

gnuplotExercıcio

Algumas Observacoes

Ü fopenarquivo = fopen(”leitura.dat”,”r”);if(arquivo != NULL ){ . . . }O valor NULL e atribuıdo a funcao fopen quando oarquivo leitura.dat nao pode ser aberto

Ü fscanfwhile (fscanf(arquivo,”%f”,&valores) != EOF) { . . . }O valor EOF e atribuıdo a funcao fscanf quando oarquivo arquivo chegar ao final

Met Comp

CLacos: for X while

Abreviacoes

Entrada e Saıda

Escrevendo emArquivos

Lendo de Arquivos

“Debugando”

gnuplotExercıcio

Conta numero de linhas de um arquivo -ultimo valor negativo

#include <stdio.h>int main(){

FILE *fp = NULL;int i, N=0;float valores;

fp = fopen("amostra2.dat","r");if (fp == NULL) return 1;fscanf (fp,"%f",&valores);while (valores >=0) {

N++;fscanf (fp,"%f",&valores);

}printf("Numero de linhas = %d\n",N);return 0; }

Met Comp

CLacos: for X while

Abreviacoes

Entrada e Saıda

Escrevendo emArquivos

Lendo de Arquivos

“Debugando”

gnuplotExercıcio

Conta numero de linhas de um arquivo -qualquer

#include <stdio.h>int main(){

FILE *fp = NULL;int N=0;float valores;

fp = fopen("amostra2.dat","r");if (fp == NULL){

printf("Arquivo nao existe\n");return 1;

}while (fscanf (fp,"%f",&valores) != EOF) {

N++;}printf("Numero de linhas = %d\n",N);return 0;

}

Veja o arquivo/home/helder/MetComp/2016-2/Aula4/contaNumeroLinhas.c

Met Comp

CLacos: for X while

Abreviacoes

Entrada e Saıda

Escrevendo emArquivos

Lendo de Arquivos

“Debugando”

gnuplotExercıcio

Debugando - Achando erros no programa

Bug: Inseto em inglesA analista de sistemas da Marinha dos Estados Unidos nas decadas de 1940 e

1950, Grace Hopper, ao resolver um problema em seu programa, descobriu um

inseto morto no computador ...

Depurar um programa em geral nao e uma tarefa facil !Tipos de erro:

Ü Erros de compilacao: Surgem ao compilar o programafonte. O programa executavel nao e gerado

Ü Erros de execucao: Surgem ao se executar oprograma. Podem parar a execucao, ou seguir emfrente, dando resultados errados

Ü Erros de logica: Ocorrem ao se executar o programamas nao ha nenhum erro de programacao em si, masdo algoritmo ou de sua implementacao

Met Comp

CLacos: for X while

Abreviacoes

Entrada e Saıda

Escrevendo emArquivos

Lendo de Arquivos

“Debugando”

gnuplotExercıcio

Debugando - Achando erros no programa

Erros de compilacao:Ü Ler com atencao as mensagens de erro do compilador

Ü Resolver um erro de cada vez. Frequentemente os errosseguintes sao consequencia do primeiro.

Ü Usar opcoes do gcc que aumentam o nıvel de verificacoesda linguagem. Ex.: gcc -Wall -ansi -pedantic

Erros de execucao e logica:Ü Ha programas dedicados a isto, mas em geral de difıcil

aplicacao. Ex.: gdb, Valgrind

Ü Quando o programa “crasha” geralmente ha mensagens deerro indicando o possıvel problema e o ponto de ocorrencia

Ü Metodo mais efetivo: Imprimir tudo a cada passo doprograma !

Ü Fundamental: Verificar os resultados para varias situacoesconhecidas.

Met Comp

CLacos: for X while

Abreviacoes

Entrada e Saıda

Escrevendo emArquivos

Lendo de Arquivos

“Debugando”

gnuplotExercıcio

Graficos com Gnuplot

8 Gnuplot e um programa de distribuicao gratuitadisponıvel para varios sistemas operacionais. Emhttp://www.gnuplot.info pode ser obtido tanto oprograma quanto a documentacao para utiliza-lo.

8 Na pagina da disciplina ha um texto introdutorio sobreo gnuplot.

8 Para iniciar o programa o comando e:...$ gnuplote obtemos o prompt:gnuplot>

Met Comp

CLacos: for X while

Abreviacoes

Entrada e Saıda

Escrevendo emArquivos

Lendo de Arquivos

“Debugando”

gnuplotExercıcio

Graficos com Gnuplot

8 Gnuplot e um programa de distribuicao gratuitadisponıvel para varios sistemas operacionais. Emhttp://www.gnuplot.info pode ser obtido tanto oprograma quanto a documentacao para utiliza-lo.

8 Na pagina da disciplina ha um texto introdutorio sobreo gnuplot.

8 Para iniciar o programa o comando e:...$ gnuplot

e obtemos o prompt:gnuplot>

Met Comp

CLacos: for X while

Abreviacoes

Entrada e Saıda

Escrevendo emArquivos

Lendo de Arquivos

“Debugando”

gnuplotExercıcio

Graficos com Gnuplot

8 Gnuplot e um programa de distribuicao gratuitadisponıvel para varios sistemas operacionais. Emhttp://www.gnuplot.info pode ser obtido tanto oprograma quanto a documentacao para utiliza-lo.

8 Na pagina da disciplina ha um texto introdutorio sobreo gnuplot.

8 Para iniciar o programa o comando e:...$ gnuplote obtemos o prompt:gnuplot>

Met Comp

CLacos: for X while

Abreviacoes

Entrada e Saıda

Escrevendo emArquivos

Lendo de Arquivos

“Debugando”

gnuplotExercıcio

Gnuplot - Comandos Basicos

>comando # comentario>plot sin(x) # grafico de sin(x)>set xzeroaxis # desenha eixo x em y = 0>set xtics axis # desenha os tics no eixo>set xrange [-3.14:3.14] # define limites do grafico>set xr [-3.14:3.14] # o mesmo que acima>replot # refaz o grafico>set grid # desenha um reticulado>set ylabel ’seno(x)’ # texto no eixo>set title "sen(x)" # tıtulo do grafico>plot ’arq.dat’ using 1:2 # grafico da col 1 X col 2>plot ’arq.dat’ u 1:2 # de arq.dat>unset key # apaga ref arquivo>plot sin(x), cos(x) # duas curvas no mesmo grafico>plot ’arq.dat’ u 1:2:3 # apresenta os pontos com a in-

w errorbars certeza em y que esta na col 3>load ’test.gpl’ # executa o script teste.gpl

Met Comp

CLacos: for X while

Abreviacoes

Entrada e Saıda

Escrevendo emArquivos

Lendo de Arquivos

“Debugando”

gnuplotExercıcio

Gnuplot - Comandos Basicos

>comando # comentario>plot sin(x) # grafico de sin(x)>set xzeroaxis # desenha eixo x em y = 0>set xtics axis # desenha os tics no eixo>set xrange [-3.14:3.14] # define limites do grafico>set xr [-3.14:3.14] # o mesmo que acima>replot # refaz o grafico>set grid # desenha um reticulado>set ylabel ’seno(x)’ # texto no eixo>set title "sen(x)" # tıtulo do grafico>plot ’arq.dat’ using 1:2 # grafico da col 1 X col 2>plot ’arq.dat’ u 1:2 # de arq.dat>unset key # apaga ref arquivo>plot sin(x), cos(x) # duas curvas no mesmo grafico>plot ’arq.dat’ u 1:2:3 # apresenta os pontos com a in-

w errorbars certeza em y que esta na col 3>load ’test.gpl’ # executa o script teste.gpl

Met Comp

CLacos: for X while

Abreviacoes

Entrada e Saıda

Escrevendo emArquivos

Lendo de Arquivos

“Debugando”

gnuplotExercıcio

Gnuplot - Comandos Basicos

>comando # comentario>plot sin(x) # grafico de sin(x)>set xzeroaxis # desenha eixo x em y = 0>set xtics axis # desenha os tics no eixo>set xrange [-3.14:3.14] # define limites do grafico>set xr [-3.14:3.14] # o mesmo que acima>replot # refaz o grafico>set grid # desenha um reticulado>set ylabel ’seno(x)’ # texto no eixo>set title "sen(x)" # tıtulo do grafico>plot ’arq.dat’ using 1:2 # grafico da col 1 X col 2>plot ’arq.dat’ u 1:2 # de arq.dat>unset key # apaga ref arquivo>plot sin(x), cos(x) # duas curvas no mesmo grafico>plot ’arq.dat’ u 1:2:3 # apresenta os pontos com a in-

w errorbars certeza em y que esta na col 3>load ’test.gpl’ # executa o script teste.gpl

Met Comp

CLacos: for X while

Abreviacoes

Entrada e Saıda

Escrevendo emArquivos

Lendo de Arquivos

“Debugando”

gnuplotExercıcio

Gnuplot - Comandos Basicos

>comando # comentario>plot sin(x) # grafico de sin(x)>set xzeroaxis # desenha eixo x em y = 0>set xtics axis # desenha os tics no eixo>set xrange [-3.14:3.14] # define limites do grafico>set xr [-3.14:3.14] # o mesmo que acima>replot # refaz o grafico>set grid # desenha um reticulado>set ylabel ’seno(x)’ # texto no eixo>set title "sen(x)" # tıtulo do grafico>plot ’arq.dat’ using 1:2 # grafico da col 1 X col 2>plot ’arq.dat’ u 1:2 # de arq.dat>unset key # apaga ref arquivo>plot sin(x), cos(x) # duas curvas no mesmo grafico>plot ’arq.dat’ u 1:2:3 # apresenta os pontos com a in-

w errorbars certeza em y que esta na col 3>load ’test.gpl’ # executa o script teste.gpl

Met Comp

CLacos: for X while

Abreviacoes

Entrada e Saıda

Escrevendo emArquivos

Lendo de Arquivos

“Debugando”

gnuplotExercıcio

Gnuplot - Comandos Basicos

>comando # comentario>plot sin(x) # grafico de sin(x)>set xzeroaxis # desenha eixo x em y = 0>set xtics axis # desenha os tics no eixo>set xrange [-3.14:3.14] # define limites do grafico>set xr [-3.14:3.14] # o mesmo que acima>replot # refaz o grafico>set grid # desenha um reticulado>set ylabel ’seno(x)’ # texto no eixo>set title "sen(x)" # tıtulo do grafico>plot ’arq.dat’ using 1:2 # grafico da col 1 X col 2>plot ’arq.dat’ u 1:2 # de arq.dat>unset key # apaga ref arquivo>plot sin(x), cos(x) # duas curvas no mesmo grafico>plot ’arq.dat’ u 1:2:3 # apresenta os pontos com a in-

w errorbars certeza em y que esta na col 3>load ’test.gpl’ # executa o script teste.gpl

Met Comp

CLacos: for X while

Abreviacoes

Entrada e Saıda

Escrevendo emArquivos

Lendo de Arquivos

“Debugando”

gnuplotExercıcio

Gnuplot - Saıda em Arquivos

Para produzir uma saıda em um arquivo e necessarioalterar o terminal e definir o nome do arquivo.

...>set term pdf # opcoes: arquivo pdf

...>set out ’saida.pdf’ # nome do arquivo pdf

...>replot # grafico no arquivo

Nao se esqueca de retornar para o terminal X11....>set term x11 # retornando

Met Comp

CLacos: for X while

Abreviacoes

Entrada e Saıda

Escrevendo emArquivos

Lendo de Arquivos

“Debugando”

gnuplotExercıcio

Exercıcio

O arquivo /home/helder/MetComp/2016-2/Aula4/mruv.dat contem as

medidas da posicao em funcao do tempo para um objeto em movimento

uniformemente acelerado. A primeira coluna indica o instante de tempo, em

segundos, a segunda a posicao, em centımetros, e a terceira a incerteza

associada, em centımetros. A curva teorica que descreve este movimento e

x(t) = 2 + 3t + 3t2/2. Use o gnuplot para reproduzir o grafico abaixo, onde os

dados medidos sao apresentados junto com a curva teorica. Salve o resultado

num arquivo pdf.

-20

0

20

40

60

80

100

120

140

160

0 1 2 3 4 5 6 7 8 9

x(c

m)

t(s)

"mruv.dat" using 1:2:32+3*x+3*x*x/2