Форум программистов, компьютерный форум CyberForum.ru

Считывать значения в матрицы и вектора - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Вектор. Составить программу изминения нулей в векторе http://www.cyberforum.ru/cpp-beginners/thread30736.html
Вектор. Составить программу изминения нулей в векторе на полсумму предыдущего и следующего елементов. На место первого и последнего нуля поставить следущее и предедущее число. Добавлено через 9 часов 5 минут 33 секунды ап!!!хелп :(
C++ Подсчитать сумму натуральных чисел Подсчитать сумму натуральных чисел, в интервале , в которых парные и непарные цифры чередуються. http://www.cyberforum.ru/cpp-beginners/thread30733.html
Массивы! C++
1.Известно, что в Москве самыми теплыми являются дни с 15 июля по 15 августа. Для проведения фестиваля были выбраны 7 следующих подряд дней, наиболее теплых по данным за последние 10 лет. Составить программу для выполнения этой работы на ЭВМ. 2.Японская радиокомпания провела опрос 250 радиослушателей по трем вопросам: 1). Какое животное Вы связываете с Японией и японцами? 2). Какая черта...
C++ Реализовать класс bankomat
помогите пожалуйста...я совершенно не представляю себе работу с классами а тут такая задачка( реализовать класс Bankomat моделирующий работу банкомата. В классе должны содержатся поля для хранения идентификационного номера банкомата, информации о текущей сумме денег оставшейся в банкомате минимальной и максимальной сумме которой позволяется снять клиенту в один день.Сумма денег представляется...
C++ Как программно можно очистить экран консоли? http://www.cyberforum.ru/cpp-beginners/thread30713.html
Допустим я запустил консольную программку, там что-то она делает, и в результате экран заполняется текстом и т.д. Как программно можно очистить экран консоли?
C++ Упорядочить массив по убыванию элементов, найти минимальный элемент 1) Найдите площадь ромба по его диагоналям. 2)Упорядочить массив В(10) по убыванию элементов, найти минимальный элемент. 3)Дана матрица А(4,3). Вывести на печать все положительные элементы этой матрицы. Найти их произведение. 4)4.1. Совпадают ли буквы в двух словах. 4.2. Вычеркните из двух слов совпадающие гласные буквы. 4.3. Вставьте между буквами в слове “_”. подробнее

Показать сообщение отдельно
ciao
0 / 0 / 0
Регистрация: 25.12.2008
Сообщений: 28

Считывать значения в матрицы и вектора - C++

20.04.2009, 12:48. Просмотров 540. Ответов 0
Метки (Все метки)

Помогите пожалуйста разобраться. Эта прога должна считивать значения в матритцы и вектора. Как ей объяснить разнитцу между матрицей GHSERp и TC . Она считивает только GHSERp, а вторую TC считивать не хочет
Код
int Gibbs::calc_spaces(char *str) //Schitaet kol-vo probelov v strochke, otekaya nenujnie

{

  char *tmp;

  int ans = 0;

  bool sp = false;

  while (*str == ' ')

    ++str;

  for (tmp = str; *tmp; ++tmp)

  {

    if (isdigit(*tmp) && sp)

    {

      ++ans;

      sp = false;

    }

    if (*tmp == ' ')

      sp = true;

  }

  return ans;

}
Код
  int nm; //nomer matrici, kotoruu zapolnnyaem

  fp=fopen(datafile,"rt");

  char str[256];

  nm = 0;

  bool wasNumbers = false;

  while (!feof(fp))

  {

    str[0] = 0;

    char *tmp = fgets(str, sizeof(str), fp);

    if (!tmp || str[0] == 0) //Esli nichego ne schitali

      break; //Vihodim


    if (str[0] == '/') //Kommentariy

    {

      if (wasNumbers)//Esli mi schtali chisla iz matrici

      {

        wasNumbers = false;

        ++nm; //Znachit ko vtoroy perehodim

      }

      continue;

    }
   int sp = calc_spaces(str); //Schitaem kol-vo probelov

   if (sp == 4) nm = 4;
   if (sp == 6 && nm == 4) nm = 5;
   if (sp == 7) nm = 7;
//   if (sp == 4 && nm == 4) nm = 8;

    if (nm == 0)

    {

      int i ;

      double v = 0.;

      sscanf(str, "%d %lf", &i, &v);

      y1[i] = v;
      wasNumbers = true;

    }

    if (nm == 1)

    {

      int i ;

      double v = 0.;

      sscanf(str, "%d %lf", &i, &v);

      y2[i] = v;

      wasNumbers = true;

    }

    if (nm == 2)

    {

      int i ;

      double v = 0.;

      sscanf(str, "%d %lf", &i, &v);

      m[i] = v;

      wasNumbers = true;

    }
   if (nm == 3)
    {
    nm = 4;
    char *tmp = str;
    for (int i = 0; i<=sp; i++){
    double a = 0.;
    sscanf(tmp,"%lf",&a);
    Tr(i) = a;
    tmp = strchr(tmp, ' ');
    if(!tmp)
    break;
    ++tmp;
    wasNumbers = true;
    }
    continue;
    }
  if (nm == 4)
    {
      int t , i , j , l ;

      double v = 0.;

      sscanf(str, "%d %d %d %d %lf", &t, &i, &j, &l, &v);

      GHSERp(t,i,j,l) = v;
      wasNumbers = true;
    }
  if (nm == 5)
   {
      int t , i, j, k, l, m;

      double v = 0.;

      sscanf(str, "%d %d %d %d %d %d %lf", &t, &i, &j, &k, &l, &m, &v);

      L1ini(t,i,j,k,l,m) = v;
      wasNumbers = true;
   }
  if (nm == 6)
   {
      int t, i, j, k, l, m;

      double v = 0.;

      sscanf(str, "%d %d %d %d %d %d %lf", &t, &i, &j, &k, &l, &m, &v);

      L2ini(t,i,j,k,l,m) = v;
      wasNumbers = true;
   }
  if (nm == 7)
   {  
      nm = 8;
      int t, i, j, k, l, m, n;

      double v = 0.;

      sscanf(str, "%d %d %d %d %d %d %d %lf", &t, &i, &j, &k, &l, &m, &n, &v);

      L0ini(t,i,j,k,l,m,n) = v;
      wasNumbers = true;
   }
  if (nm == 8)
  {
      int t , i , j , l ;

      double v = 0.;

      sscanf(str, "%d %d %d %d %lf", &t, &i, &j, &l, &v);

      TC(t,i,j,l) = v;
      wasNumbers = true;
  } 
 }
fclose(fp);
Вложения
Тип файла: txt ferrite.txt (12.1 Кб, 12 просмотров)
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru