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
Utilizar
 Criar o                                            o
tipo File                                        arquivo



                         Abrir o                            Fechar o
                         arquivo                            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



                          http://www.cplusplus.com/reference/clibrary/cstdio/FILE/
      cscerqueira.com/christopher - - - CCO-013
» Deve-se indicar qual arquivo quer ser
  utilizado e como deve ser utilizado


pFile = fopen (NomeDoArquivo, modo);
            “r”        Read: abre o arquivo para leitura. Precisa existir.
            “w”        Write: cria o arquivo para saída. Apaga anterior se existir.
   Modos




            “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.




                           http://www.cplusplus.com/reference/clibrary/cstdio/fopen/
           cscerqueira.com/christopher - - - CCO-013
» Ler dados do arquivo                            http://www.cplusplus.com/reference/c
                                                  library/cstdio/fscanf/




     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
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                            http://www.cplusplus.com/reference/clibrary/
                                                 cstdio/fprintf/



 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
» 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.




                http://www.cplusplus.com/reference/clibrary/cstdio/fclose/
cscerqueira.com/christopher - - - CCO-013
» 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
campo 1                       campo 2      campo 3


 Registro 1               Idade                       Sexo      Primeiro nome


 Registro 2               Idade                       Sexo      Primeiro nome

                                                      .
                                                      .
                                                      .
                                                      .
                                                      .


 Registro n                                                     Primeiro nome
                         Idade                        Sexo



for ( k = 1; k <= n; k++ )
     fscanf ( pFile, “%d %c %s”, &idade1, &sexo1, nome1 );
          cscerqueira.com/christopher - - - CCO-013
» 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 da
  seguinte 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
0              1              2                              28        29
idade:

» Os indices indicam as posições no vetor.

» idade[5] = 30; // atribui na 6ª posição o valor 30
                              0        1         2    3   4   5    6

            Idade:                                            30


» numero = 45;
» k = 3;                                                  0   1    2   3    4    5     6
» idade[k] = numero;
                                                 Idade:                45        30




         cscerqueira.com/christopher - - - CCO-013
» 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
Identifique a folha / Entregar o resumo junto
» 1. Escrever um programa para solicitar os valores
  (números) de um vetor (inteiros – 8 unidades);
  solicitar um outro número pelo teclado e pesquisar
  se esse número existe no vetor. Se existir, imprimir
  em qual posição do vetor. Se não existir, imprimir
  MSG que não existe.
» 2. Criar um programa que leia de um arquivo os
  elementos de uma matriz inteira de 3 x 3 e
  imprimir todos os elementos, exceto os elementos
  da diagonal principal.
» 1 2 3
» 4 5 6                                               » Individual.
                                                      » Pode ser com lápis.
» 7 8 9
          cscerqueira.com/christopher - - - CCO-013   » 30 min.
» 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

programação c 8 9_aula

  • 1.
  • 2.
    » 1. Resumoda 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
  • 3.
  • 4.
    » Entrada dedados para carregar e configurar o programa com condições iniciais. » Scripts/tabelas/históricos/dados pessoais cscerqueira.com/christopher - - - CCO-013
  • 5.
    Utilizar Criar o o tipo File arquivo Abrir o Fechar o arquivo arquivo cscerqueira.com/christopher - - - CCO-013
  • 6.
    » Para usarum arquivo, temos que ter uma variável que aponta para o arquivo. FILE * pFile; » Tipo File, símbolo de apontamento, nome da variável http://www.cplusplus.com/reference/clibrary/cstdio/FILE/ cscerqueira.com/christopher - - - CCO-013
  • 7.
    » Deve-se indicarqual arquivo quer ser utilizado e como deve ser utilizado pFile = fopen (NomeDoArquivo, modo); “r” Read: abre o arquivo para leitura. Precisa existir. “w” Write: cria o arquivo para saída. Apaga anterior se existir. Modos “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. http://www.cplusplus.com/reference/clibrary/cstdio/fopen/ cscerqueira.com/christopher - - - CCO-013
  • 8.
    » Ler dadosdo arquivo http://www.cplusplus.com/reference/c library/cstdio/fscanf/ 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
  • 9.
    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
  • 10.
    » Escrever noarquivo http://www.cplusplus.com/reference/clibrary/ cstdio/fprintf/ 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
  • 11.
    » Existem diversasoutras 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
  • 12.
    » Depois queutilizar o arquivo é necessário fechá-lo. int fclose(pFile); » Se fechar o arquivo e for necessário reutilizá-lo é necessário abrir novamente. http://www.cplusplus.com/reference/clibrary/cstdio/fclose/ cscerqueira.com/christopher - - - CCO-013
  • 13.
    » Os arquivosgeralmente 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
  • 14.
    campo 1 campo 2 campo 3 Registro 1 Idade Sexo Primeiro nome Registro 2 Idade Sexo Primeiro nome . . . . . Registro n Primeiro nome Idade Sexo for ( k = 1; k <= n; k++ ) fscanf ( pFile, “%d %c %s”, &idade1, &sexo1, nome1 ); cscerqueira.com/christopher - - - CCO-013
  • 15.
    » Conjunto devalores do mesmo tipo, agrupados numa mesma variável. » Unidimensional: Vetores » Bidimensional: Matrizes cscerqueira.com/christopher - - - CCO-013
  • 16.
    » Em linguagemC, agregado homogêneo é definido da seguinte 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
  • 17.
    » int idades[30]; »float notas[100]; » char nome[80]; cscerqueira.com/christopher - - - CCO-013
  • 18.
    0 1 2 28 29 idade: » Os indices indicam as posições no vetor. » idade[5] = 30; // atribui na 6ª posição o valor 30 0 1 2 3 4 5 6 Idade: 30 » numero = 45; » k = 3; 0 1 2 3 4 5 6 » idade[k] = numero; Idade: 45 30 cscerqueira.com/christopher - - - CCO-013
  • 19.
    » Bidimensional: int valores[60][30]; » Tridimensional: int valores[60][30][10]; » ... cscerqueira.com/christopher - - - CCO-013
  • 20.
    // LEITURA DAMATRIZ 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
  • 21.
  • 22.
    Identifique a folha/ Entregar o resumo junto » 1. Escrever um programa para solicitar os valores (números) de um vetor (inteiros – 8 unidades); solicitar um outro número pelo teclado e pesquisar se esse número existe no vetor. Se existir, imprimir em qual posição do vetor. Se não existir, imprimir MSG que não existe. » 2. Criar um programa que leia de um arquivo os elementos de uma matriz inteira de 3 x 3 e imprimir todos os elementos, exceto os elementos da diagonal principal. » 1 2 3 » 4 5 6 » Individual. » Pode ser com lápis. » 7 8 9 cscerqueira.com/christopher - - - CCO-013 » 30 min.
  • 23.
    » 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
  • 24.
    » Tutorial completode C/C++ » http://www.cplusplus.com/files/tutorial.pdf cscerqueira.com/christopher - - - CCO-013