programação c 8 9_aula
TRANSCRIPT
Atividade 8/9
cscerqueira.com/christopher - - - CCO-013
» 1. Resumo da aula do Edison.˃Dúvidas sobre a aula
˃Dúvidas sobre a prova
» 2. Mini – teste (30 min)˃2 QUESTÕES
˃Entregar resumos junto com o teste.
» 3. Atividades em sala
» 4. Aula do dia 01/11 será passada online.
» Talvez não venha no dia 8/11, deixarei atividades.
cscerqueira.com/christopher - - - CCO-013
cscerqueira.com/christopher - - - CCO-013
»Entrada de dados para carregar e configurar o programa com condições iniciais.
»Scripts/tabelas/históricos/dados pessoais
cscerqueira.com/christopher - - - CCO-013
Criar o tipo File
Abrir o arquivo
Utilizar o
arquivo
Fechar o arquivo
cscerqueira.com/christopher - - - CCO-013
» Para usar um arquivo, temos que ter uma variável que aponta para o arquivo.
FILE * pFile;
» Tipo File, símbolo de apontamento, nome da variável
cscerqueira.com/christopher - - - CCO-013
http://www.cplusplus.com/reference/clibrary/cstdio/FILE/
» Deve-se indicar qual arquivo quer ser utilizado e como deve ser utilizado
pFile = fopen (NomeDoArquivo, modo);
cscerqueira.com/christopher - - - CCO-013
http://www.cplusplus.com/reference/clibrary/cstdio/fopen/
“r” Read: abre o arquivo para leitura. Precisa existir.
“w” Write: cria o arquivo para saída. Apaga anterior se existir.
“a” Append: abre um arquivo para saída e posiciona no fim. Cria se não existir.
“r+” Read/Update: abre o arquivo para update.
“w+” Write/Update: cria um arquivo e abre para update. Apaga se existir.
“a+” Abre um arquivo para update e posiciona no fim. Cria se não existir.
Mo
do
s
» Ler dados do arquivo
int fscanf( pFile, “Formatos”, variáveis);
» Funciona como o scanf: lê elemento por elemento.
fscanf ( arquivo, “%d %s %c”, &idade, pnome, &sexo );
cscerqueira.com/christopher - - - CCO-013
http://www.cplusplus.com/reference/clibrary/cstdio/fscanf/
char getBuff(char *buf, int n, FILE *fp){
char *ret;
for(;;) {ret = fgets(buf, n, fp);if (ret == NULL) return(NULL);if (buf[0] != '\n' && buf[0] != '#') return(1); // Skip blank
lines and comments.}
}
cscerqueira.com/christopher - - - CCO-013
» Escrever no arquivo
int fprintf(pFile, “Formatos” , variáveis);
» Igual ao printf.
» Escreve no fim do arquivo.
fprintf (pFile, "Name %d [%-10.10s]\n",n,name);
cscerqueira.com/christopher - - - CCO-013
http://www.cplusplus.com/reference/clibrary/cstdio/fprintf/
» Existem diversas outras funções para manipular arquivos.
» Estão na biblioteca stdio.h
» Funções que começam com a letra f.
http://www.cplusplus.com/reference/clibrary/cstdio/
cscerqueira.com/christopher - - - CCO-013
» Depois que utilizar o arquivo é necessário fechá-lo.
int fclose(pFile);
» Se fechar o arquivo e for necessário reutilizá-lo é necessário abrir novamente.
cscerqueira.com/christopher - - - CCO-013
http://www.cplusplus.com/reference/clibrary/cstdio/fclose/
» Os arquivos geralmente possuem estruturas de dados que são lidos em blocos,
» Esses blocos podem ser chamados de registros.
» O arquivo contém vários registros.
cscerqueira.com/christopher - - - CCO-013
cscerqueira.com/christopher - - - CCO-013
Idade Sexo Primeiro nome
Idade
Idade
Sexo
Sexo
Primeiro nome
Primeiro nome
Registro 1
Registro 2
Registro n
.
.
.
.
.
campo 1 campo 2 campo 3
for ( k = 1; k <= n; k++ )fscanf ( pFile, “%d %c %s”, &idade1, &sexo1, nome1 );
»Conjunto de valores do mesmo tipo, agrupados numa mesma variável.
»Unidimensional: Vetores
»Bidimensional: Matrizes
cscerqueira.com/christopher - - - CCO-013
» Em linguagem C, agregado homogêneo é definido daseguinte forma:
tipo NOME DA VARIAVEL [ dimensão ];
Onde :
dimensao = quantidade de células do agregado+ deve ser sempre maior que zero
+ deve ser sempre inteiro
+ tem que ter um valor especificado ( não pode ser variável )
cscerqueira.com/christopher - - - CCO-013
» int idades[30];
» float notas[100];
»char nome[80];
cscerqueira.com/christopher - - - CCO-013
» Os indices indicam as posições no vetor.
» idade[5] = 30; // atribui na 6ª posição o valor 30
» numero = 45;
» k = 3;
» idade[k] = numero;
cscerqueira.com/christopher - - - CCO-013
0 1 2 2928idade:
30
0 62 3 4 51
Idade:
45 30
0 62 3 4 51
Idade:
»Bidimensional:
int valores[60][30];»Tridimensional:
int valores[60][30][10];» ...
cscerqueira.com/christopher - - - CCO-013
// LEITURA DA MATRIZ
for ( r = 0; r < n_linhas; r++ ) {
for ( u = 0; u < n_colunas; u++ ) {
fscanf ( pFile, “%d” , &numeros[r][u] );
}
}
cscerqueira.com/christopher - - - CCO-013
cscerqueira.com/christopher - - - CCO-013
cscerqueira.com/christopher - - - CCO-013
» 1. Escrever um programa para solicitar os valores(números) de um vetor (inteiros – 8 unidades);solicitar um outro número pelo teclado e pesquisarse esse número existe no vetor. Se existir, imprimirem qual posição do vetor. Se não existir, imprimirMSG que não existe.
» 2. Criar um programa que leia de um arquivo oselementos de uma matriz inteira de 3 x 3 eimprimir todos os elementos, exceto os elementosda diagonal principal.
» 1 2 3
» 4 5 6
» 7 8 9
» Individual.» Pode ser com lápis.» 30 min.
Identifique a folha / Entregar o resumo junto
» 1 - Resumo da aula de 16 e 23/10 - - 2 – Programas:
» A) Escrever um programa para multiplicar matrizes 3x3. Uma matriz é entrada via arquivo e a segunda via teclado. O resultado é exibido na tela e o programa deve perguntar se deseja salvar no mesmo arquivo ou em outro, neste caso pedir o nome do novo arquivo.
» B) Faça um programa que leia de um arquivo o nome, o sexo, a altura e a idade de uma pessoa. Calcule e mostre em ordem de altura o nome e o seu peso ideal de acordo com as seguintes características da pessoa:
cscerqueira.com/christopher - - - CCO-013
» Tutorial completo de C/C++
» http://www.cplusplus.com/files/tutorial.pdf
cscerqueira.com/christopher - - - CCO-013