Me todos Computacionais em Fı sica Lac os: for X while I/O Entrada e Saı da Escrevendo em Arquivos Lendo de Arquivos

Documentos relacionados
Me todos Computacionais em Fı sica

Me todos Computacionais em Fı sica

Me todos Computacionais em Fı sica

Me todos Computacionais em Fı sica

Me todos Computacionais em Fı sica

Mestrado em Engenharia Física Tecnológica

Departamento de Sistemas de Computação Universidade de São Paulo Introdução a Ciência de Computação I. Aula 13 Arquivos

Me todos Computacionais em Fı sica gnuplot

Disciplina de Introdução à Ciência da Computação ICC 1 - Teoria

Outline. 33. Manipulação de arquivos DIM

9. Arquivos em C. Prof. Renato Tinós. Departamento de Computação e Matemática (FFCLRP/USP) Introdução à Computação II

USP - ICMC - SSC SSC o. Semestre Disciplina de Introdução à Ciência da Computação ICC 1 - Teoria

Aula 16: Manipulação de Arquivos em C

1/24 FICHEIROS DE TEXTO

ponteiros INF Programação I Prof. Roberto Azevedo

Métodos Computacionais em Física

3.1 - Funções para manipular dados de entrada e saída padrão

Capítulo 06: Arquivos

INF1005: Programação 1. Arquivos. 02/05/10 (c) Paula Rodrigues 1

Introdução à Programação

Referências. Arquivos. Tópicos Principais. Programação de Computadores II. Motivação. Motivação. Abertura de arquivo. Slides da profa.

MAC-115 Introdução à Computação para Ciências Exatas e Tecnologia IO Terceiro Exercício-Programa Entregar até 09/11/2007

Computação 2. Aula 9. Diego Addan Arquivos

Programação para Computação 13ª Aula

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

Linguagem C Ficheiros Compilação Separada

Estruturas de Decisão e loops

Me todos Computacionais em Fı sica

Me todos Computacionais em Fı sica

Arquivos. INF1005 Programação I Profa. Simone D.J. Barbosa sala 410 RDC

Disciplina de Linguagem de Programação e Aplicações [ Eng. Elétrica / Automação ]

USP - ICMC - SSC SSC o. Semestre Disciplina de Linguagem de Programação e Aplicações [ Eng. Elétrica / Automação ]

Programação II. Files Read & Write. Bruno Feijó Dept. de Informática, PUC-Rio

Me todos Computacionais em Fı sica

Programação de Computadores I Arquivos na Linguagem C PROFESSORA CINTIA CAETANO

Métodos Computacionais em Física I (FIW234) Turmas IFA e IFB Noções Básicas de Linguagem C

Computação 2. Aula 8. Profª. Fabiany Arquivos

Linguagem C. Armazenamento de Dados em Arquivos - Continuação

Introdução à Computação II AULA 08 BCC Noturno - EMA896115B

O que é a modularização

Me todos Computacionais em Fı sica

Aula 26: Arquivos de texto

Programação II. Arquivos - Conceito. Arquivos

Introdução à Programação

Introdução a Programação. Manipulando Arquivos em Modo Texto

CAP. IX - MANIPULAÇÃO DE ARQUIVOS Generalidades sobre Arquivos. 9.2 Abertura e Fechamento de Arquivos. Operações com arquivos:

Manipulação de Arquivos em C

Sumário. Ficheiros. Ficheiros

Capítulo 6: Arquivos

4 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 }

Programação. MEAer e LEE. Manipulação de ficheiros de texto. Bertinho Andrade da Costa. Instituto Superior Técnico. 2010/2011 1º Semestre

Arquivos. Programação de Computadores I. Natália Batista.

INF 1005 Programação I - Prof. Hélio Lopes 24/04/2012

Linguagens de Programação I

Laboratório de Introdução à Ciência da Computação I

PROGRAMAÇÃO INSTRUÇÕES DA LINGUAGEM C

Programação Básica. Estrutura de um algoritmo

Arrays, Criação de Funções, Estruturas e Manipulação de Arquivos.

Tópicos em C. Eliade F. Lima

PIP/CA - Programa Interdisciplinar de Pós-Graduação em Computação Aplicada da UNISINOS ALGORITMOS & ESTRUTURAS DE DADOS

Aula 26 - Arquivos. Prof. Laura Silva de Assis. Engenharia da Computação. CEFET/RJ - Centro Federal de Educação Tecnológica Celso Suckow da Fonseca

C Arquivos. Adriano Cruz 21 de julho de Instituto de Matemática Departamento de Ciência da Computação UFRJ

Depuração e Teste de programas C C Depuração e teste de programas C

Algoritmos e Programação

INSTITUTO FEDERAL DE! EDUCAÇÃO, CIÊNCIA E TECNOLOGIA RIO GRANDE DO NORTE

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

ALGORITMOS AULA 01. Baseado nas aulas do Prof. Jorgiano Vidal

PROGRAMAÇÃO INSTRUÇÕES DA LINGUAGEM C

Disciplina de Algoritmos e Programação

Métodos Computacionais. Arquivos

Arquivos em C Parte 2

Curso de C. Comunicação e Arquivos. 24/05/2010 Arnaldo V Moura, Daniel F. Ferber 1

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

MC-102 Aula 06 Comandos Repetitivos

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

Computação para Informática - Prof. Adriano Joaquim de Oliveira Cruz Terceira Aula Prática - 10 de setembro de 2010

Objetivo. Compreender a definição e dominar a implementação de ponteiros em C. Dominar a manipulação de arquivos

13a. Aula Manipulação de arquivos

CCO 016 / COM 110 Fundamentos de Programação

Programação Estruturada

Manipulação de Ficheiros

Linguagem C (repetição)

Aula 5 Oficina de Programação Introdução ao C. Profa. Elaine Faria UFU

Algoritmos e Estruturas de Dados II IEC013

Universidade Federal de Uberlândia Faculdade de Computação. Linguagem C: Manipulação de arquivos

Aula 01. Programação Condicional Programação repetitiva

C/C++; biblioteca stdio

Linguagem C: Introdução

MC-102 Aula 24 Arquivos em C e Parâmetros do Programa

Aula 14 Oficina de Programação Tópicos Especiais em C: Arquivos. Profa. Elaine Faria UFU

Estruturas de Dados. Módulo 15 - Arquivos. 2/6/2005 (c) Dept. Informática - PUC-Rio 1

Introdução à Programação Estruturada Parte 2. Material da Prof. Ana Eliza

Existe uma quantidade de informação que pode ser armazenada para resolver o problema.

TÉCNICAS DE PROGRAMAÇÃO

Introdução à Linguagem C

Structs, Ponteiros e Arquivos. Prof. Maurício Dias

Fundamentos de Programação 1

Guia Rápido: GCC, Makefile e Valgrind.

Fı sica Experimental IV

Transcrição:

Me todos omputacionais em Fı sica Lendo de Sandra Amato Instituto de Fı sica Universidade Federal do Rio de Janeiro Segundo Semestre de 2017

Lendo de int, long int: Inteiros: ontadores, indices,... float, double: Reais: A ngulos, raio, posic a o, nota das avaliac o es,...

int, long int: Inteiros: ontadores, indices,... float, double: Reais: A ngulos, raio, posic a o, nota das avaliac o es,... Lendo de O problema e que determina a escolha mais adequada!

int, long int: Inteiros: ontadores, indices,... float, double: Reais: A ngulos, raio, posic a o, nota das avaliac o es,... O problema e que determina a escolha mais adequada! Lendo de int Suficiente para a maioria das aplicac o es

int, long int: Inteiros: ontadores, indices,... float, double: Reais: A ngulos, raio, posic a o, nota das avaliac o es,... O problema e que determina a escolha mais adequada! Lendo de int Suficiente para a maioria das aplicac o es double Mais adequado para as aplicac o es nume ricas

int, long int: Inteiros: ontadores, indices,... float, double: Reais: A ngulos, raio, posic a o, nota das avaliac o es,... O problema e que determina a escolha mais adequada! Lendo de int Suficiente para a maioria das aplicac o es double Mais adequado para as aplicac o es nume ricas Reveja o programa limits.c O valor ma ximo para uma varia vel int e 2147483647

int, long int: Inteiros: ontadores, indices,... float, double: Reais: A ngulos, raio, posic a o, nota das avaliac o es,... O problema e que determina a escolha mais adequada! Lendo de int Suficiente para a maioria das aplicac o es double Mais adequado para as aplicac o es nume ricas Reveja o programa limits.c O valor ma ximo para uma varia vel int e 2147483647 uidado com o scanf

omparando reais: Da Aula 3: uidado com a igualdade entre reais: if(a==b)... 1.99999999999999... e igual a 2.0000000000000...? Melhor escolher uma tolera ncia aceita vel, ex., 1e-10, e pedir: if(fabs(a-b) < 1e-10)... Lendo de Rode o programa zero.c (disponı vel na pa gina do curso): int main(){ double a=1., b=-1.4, c=.49, delta; /* (x-0.7)ˆ2=0 */ delta = b*b-4*a*c; if(delta==0) printf("delta e igual a zero\n"); else printf("delta e diferente de zero\n"); printf("%.10f ",delta); printf("%g\n",delta); return 0; } delta e diferente de zero -0.0000000000-2.22045e-16

Lendo de Existem algumas maneiras de abreviar comandos. Elas na o sa o necessa rias e podem tornar o programa de difı cil compreensa o

Existem algumas maneiras de abreviar comandos. Elas na o sa o necessa rias e podem tornar o programa de difı cil compreensa o Lendo de 8 i = i + 1 Ü i++, ++i

Existem algumas maneiras de abreviar comandos. Elas na o sa o necessa rias e podem tornar o programa de difı cil compreensa o Lendo de 8 i = i + 1 Ü i++, ++i 8 i = i - 1 Ü i- -, - -i

Existem algumas maneiras de abreviar comandos. Elas na o sa o necessa rias e podem tornar o programa de difı cil compreensa o Lendo de 8 i = i + 1 Ü i++, ++i 8 i = i - 1 Ü i- -, - -i 8 soma = soma + n Ü soma + = n

Existem algumas maneiras de abreviar comandos. Elas na o sa o necessa rias e podem tornar o programa de difı cil compreensa o Lendo de 8 i = i + 1 Ü i++, ++i 8 i = i - 1 Ü i- -, - -i 8 soma = soma + n Ü soma + = n Vale para os operadores aritme ticos: +, -, *, / e %. A forma geral e : t = t operador expressa o a = a * 2; a = a - b; Ü Ü Ü t operador = expressa o a * = 2; a - = b;

Programa que escolhe o maior - Sem lac o #include <stdio.h> int main(){ double a, b, c; double max; printf("entre com 3 numeros\n"); scanf ("%lf %lf %lf", &a, &b, &c); Lendo de max = if (a if (b if (c -9999999; > max) max = a; > max) max = b; > max) max = c; printf("o maior numero e : %f\n", max); return 0; }

Programa que escolhe o maior - com for Lendo de #include <stdio.h> int main(){ double a; double max; int i; max = -9999999; for (i = 1; i<= 3; i = i +1){ printf("entre com o numero %d\n ",i); scanf ("%lf", &a); if (a > max) max = a; } printf("o maior numero e : %f\n", max); return 0; }

maior com while -- maior.c Lendo de #include <stdio.h> int main(){ double a; double max; int i; max = -9999999; i = 1; while (i<= 3){ printf("entre com o numero %d\n ",i); scanf ("%lf", &a); if (a > max) max = a; i = i+1; } printf("o maior numero e : %f\n", max); return 0; }

Redirecionamento de em Unix Lendo de 8 O dispositivo padra o para entrada de dados (stdin) e o teclado. O dispositivo padra o para saı da de dados (stdout) e o monitor.

Redirecionamento de em Unix Lendo de 8 O dispositivo padra o para entrada de dados (stdin) e o teclado. O dispositivo padra o para saı da de dados (stdout) e o monitor. 8 Para redirecionar a entrada de dados para um arquivo, usamos o <

Redirecionamento de em Unix 8 O dispositivo padra o para entrada de dados (stdin) e o teclado. O dispositivo padra o para saı da de dados (stdout) e o monitor. 8 Para redirecionar a entrada de dados para um arquivo, usamos o < Lendo de 8 Para redirecionar a saı da de dados para um arquivo, usamos o >

Redirecionamento de em Unix 8 O dispositivo padra o para entrada de dados (stdin) e o teclado. O dispositivo padra o para saı da de dados (stdout) e o monitor. 8 Para redirecionar a entrada de dados para um arquivo, usamos o < Lendo de 8 Para redirecionar a saı da de dados para um arquivo, usamos o > rie um arquivo lista.dat contendo 3 nu meros e rode o programa maior.c que le esses nu meros a partir do teclado com o comando:./maior < lista.dat

Redirecionamento de em Unix 8 O dispositivo padra o para entrada de dados (stdin) e o teclado. O dispositivo padra o para saı da de dados (stdout) e o monitor. 8 Para redirecionar a entrada de dados para um arquivo, usamos o < Lendo de 8 Para redirecionar a saı da de dados para um arquivo, usamos o > rie um arquivo lista.dat contendo 3 nu meros e rode o programa maior.c que le esses nu meros a partir do teclado com o comando:./maior < lista.dat O resultado sera escrito na tela do monitor. Se quisermos salvar este resultado num arquivo resultados.dat:./maior < lista.dat > resultado.dat

: Formatac a o Lendo de Ü Sintaxe printf( expressa o de controle,argumentos): Ü existe um default para o nu mero de algarismos e casas decimais. Ü e possı vel controlar o nu mero de casas decimais impressas: %md sa o usadas m casas para escrever o nu mero. %m.nf sa o usadas m casas para escrever o nu mero, das quais n a direita do ponto. printf( x = %4d e y = %5.2f\n, x, y); x = 1234 e y = 12.45

: fprintf Lendo de Ü Ja vimos como redirecionar a stdout./programa > arquivo.saida

: fprintf Lendo de Ü e possı vel definir o arquivo dentro do programa

: fprintf Lendo de Ü e possı vel definir o arquivo dentro do programa 8 Declarar um ponteiro para o arquivo: FILE *arquivo = NULL;

: fprintf Lendo de Ü 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 func a o fopen(nome, opc a o) arquivo = fopen( resultados.dat, w );

: fprintf Lendo de Ü 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 func a o fopen(nome, opc a o) arquivo = fopen( resultados.dat, w ); 8 e testar se ele pode ser aberto. if(arquivo == NULL ){ printf( Problema ao abrir arquivo ); return 0; }

: fprintf Lendo de Ü 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 func a o fopen(nome, opc a o) arquivo = fopen( resultados.dat, w ); 8 e testar se ele pode ser aberto. if(arquivo == NULL ){ printf( Problema ao abrir arquivo ); return 0; } 8 Escrever usando o comando fprintf(arquivo, expressa o de controle,argumentos);

: fprintf Lendo de Ü 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 func a o fopen(nome, opc a o) arquivo = fopen( resultados.dat, w ); 8 e testar se ele pode ser aberto. if(arquivo == NULL ){ printf( Problema ao abrir arquivo ); return 0; } 8 Escrever usando o comando fprintf(arquivo, expressa o de controle,argumentos); fprintf(arquivo, O resultado e %6.2f \n, ValorFinal);

: fprintf Lendo de Ü 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 func a o fopen(nome, opc a o) arquivo = fopen( resultados.dat, w ); 8 e testar se ele pode ser aberto. if(arquivo == NULL ){ printf( Problema ao abrir arquivo ); return 0; } 8 Escrever usando o comando fprintf(arquivo, expressa o de controle,argumentos); fprintf(arquivo, O resultado e %6.2f \n, ValorFinal); 8 Fechar o arquivo com o comando fclose fclose(arquivo);

: Lendo de fscanf Lendo de Ü Lendo do teclado: scanf( expressa o de controle, enderec os dos argumentos): scanf("%f", &x);

: Lendo de fscanf Lendo de Ü Redirecionamento do stdin no Linux:./programa < leitura.dat

: Lendo de fscanf Lendo de Ü Abrindo o arquivo diretamente:

: Lendo de fscanf Lendo de Ü Abrindo o arquivo diretamente: 8 Declarar um ponteiro para o arquivo: FILE *entrada = NULL;

: Lendo de fscanf Lendo de Ü Abrindo o arquivo diretamente: 8 Declarar um ponteiro para o arquivo: FILE *entrada = NULL; 8 Abrir o arquivo com a func a o fopen(nome, opc a o) entrada = fopen( leitura.dat, r );

: Lendo de fscanf Lendo de Ü Abrindo o arquivo diretamente: 8 Declarar um ponteiro para o arquivo: FILE *entrada = NULL; 8 Abrir o arquivo com a func a o fopen(nome, opc a o) entrada = fopen( leitura.dat, r );

: Lendo de fscanf Lendo de Ü Abrindo o arquivo diretamente: 8 Declarar um ponteiro para o arquivo: FILE *entrada = NULL; 8 Abrir o arquivo com a func a o fopen(nome, opc a o) entrada = fopen( leitura.dat, r ); 8 e testar se ele existe. if(entrada!= NULL ){ printf( Arquivo inexistente ); return 0; }

: Lendo de fscanf Lendo de Ü Abrindo o arquivo diretamente: 8 Declarar um ponteiro para o arquivo: FILE *entrada = NULL; 8 Abrir o arquivo com a func a o fopen(nome, opc a o) entrada = fopen( leitura.dat, r ); 8 e testar se ele existe. if(entrada!= NULL ){ printf( Arquivo inexistente ); return 0; } 8 Ler usando o comando fscanf(entrada, expressa o de controle,enderec os dos argumentos); fscanf(entrada, %d %lf, &num, &valor);

: Lendo de fscanf Lendo de Ü Abrindo o arquivo diretamente: 8 Declarar um ponteiro para o arquivo: FILE *entrada = NULL; 8 Abrir o arquivo com a func a o fopen(nome, opc a o) entrada = fopen( leitura.dat, r ); 8 e testar se ele existe. if(entrada!= NULL ){ printf( Arquivo inexistente ); return 0; } 8 Ler usando o comando fscanf(entrada, expressa o de controle,enderec os dos argumentos); fscanf(entrada, %d %lf, &num, &valor); 8 Fechar o arquivo com o comando fclose fclose(entrada); Baixe da pa gina do curso e estude o programa

Exemplo: maior com arquivo.c Lendo de #include <stdio.h> int main(){ double a; int i = 1; double 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,"%lf", &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; }

Algumas Observac o es Lendo de Ü fopen arquivo = fopen( leitura.dat, r ); if(arquivo!= NULL ){... }

Algumas Observac o es Lendo de Ü fopen arquivo = fopen( leitura.dat, r ); if(arquivo!= NULL ){... } O valor NULL e atribuı do a func a o fopen quando o arquivo leitura.dat na o pode ser aberto

Algumas Observac o es Lendo de Ü fopen arquivo = fopen( leitura.dat, r ); if(arquivo!= NULL ){... } O valor NULL e atribuı do a func a o fopen quando o arquivo leitura.dat na o pode ser aberto Ü fscanf while (fscanf(arquivo, %lf,&valores)!= EOF) {... }

Algumas Observac o es Lendo de Ü fopen arquivo = fopen( leitura.dat, r ); if(arquivo!= NULL ){... } O valor NULL e atribuı do a func a o fopen quando o arquivo leitura.dat na o pode ser aberto Ü fscanf while (fscanf(arquivo, %lf,&valores)!= EOF) {... } O valor EOF e atribuı do a func a o fscanf quando o arquivo arquivo chegar ao final

onta nu mero de linhas de um arquivo u ltimo valor negativo Lendo de #include <stdio.h> int main() { FILE *fp = NULL; int i, N=0; double valores; fp = fopen("amostra2.dat","r"); if (fp == NULL) return 1; fscanf (fp,"%lf",&valores); while (valores >=0) { N++; fscanf (fp,"%lf",&valores); } printf("numero de linhas = %d\n",n); return 0; }

onta nu mero de linhas de um arquivo qualquer #include <stdio.h> int main() { FILE *fp = NULL; int N=0; double valores; fp = fopen("amostra2.dat","r"); if (fp == NULL){ printf("arquivo nao existe\n"); return 1; } while (fscanf (fp,"%lf",&valores)!= EOF) { N++; } printf("numero de linhas = %d\n",n); return 0; Lendo de } Baixe e estude o arquivo contanumerolinhas.c na pa gina do curso

Debugando - Achando erros no programa Bug: Inseto em ingle s A analista de sistemas da Marinha dos Estados Unidos nas de cadas de 1940 e Lendo de 1950, Grace Hopper, ao resolver um problema em seu programa, descobriu um inseto morto no computador... Depurar um programa em geral na o e uma tarefa fa cil! Tipos de erro: Ü Erros de compilac a o: Surgem ao compilar o programa fonte. O programa executa vel na o e gerado Ü Erros de execuc a o: Surgem ao se executar o programa. Podem parar a execuc a o, ou seguir em frente, dando resultados errados Ü Erros de lo gica: Ocorrem ao se executar o programa mas na o ha nenhum erro de programac a o em si, mas do algoritmo ou de sua implementac a o

Debugando - Achando erros no programa Erros de compilac a o: Ü Ler com atenc a o as mensagens de erro do compilador Ü Resolver um erro de cada vez. Frequentemente os erros seguintes sa o conseque ncia do primeiro. Ü Usar opc o es do gcc que aumentam o nı vel de verificac o es da linguagem. Ex.: gcc -Wall -ansi -pedantic Erros de execuc a o e lo gica: Lendo de Ü Ha programas dedicados a isto, mas em geral de difı cil aplicac a o. Ex.: gdb, Valgrind Ü Quando o programa crasha geralmente ha mensagens de erro indicando o possı vel problema e o ponto de ocorre ncia Ü Me todo mais efetivo: Imprimir tudo a cada passo do programa! Ü Fundamental: Verificar os resultados para va rias situac o es conhecidas.