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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
ciao
0 / 0 / 0
Регистрация: 25.12.2008
Сообщений: 28
#1

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

20.04.2009, 12:48. Просмотров 539. Ответов 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 просмотров)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
20.04.2009, 12:48     Считывать значения в матрицы и вектора
Посмотрите здесь:

Составить функцию для построения вектора из элементов матрицы по заданному правилу и отсортировать элементы матрицы - C++
11. Задано матрицю А={aij} розмірності nn. Скласти функцію для побудови вектора B={bi} за наступним правилом: якщо aii0, то bi узяти...

Обнуляются значения вектора - C++
Всем здравствуйте! Столкнулся с очень необычной проблемой, т.к. я до этого работал только на языках, где есть &quot;сборщик мусора&quot;. Есть...

переменная присваивает значения вектора - C++
У меня есть определенные вектор, который содержит символы (причем в каждом элементе вектора по 1 символу). Как мне занести все эти элеметы...

Проверка, есть ли в ячейке вектора значения - C++
if ( vec_all != 0) { for (int t = 0; t &lt; vec_all.size(); t++) { for (int n = 0; n &lt;...

Просто не могу вывести значения из вектора - C++
#include &lt;iostream&gt; #include &lt;vector&gt; #include &lt;stdexcept&gt; using std::cout; using std::cin; using std::endl; ...

Удалить из вектора все значения равные заданному - C++
Подскажите пожалуйста Сделал вот такую программу #include &lt;iostream&gt; #include &lt;string&gt; #include &lt;algorithm&gt; #include...

Вычислить значения элементов вектора по заданной формуле - C++
Найти вектор y={y1,y2…,y6} по формуле: yi={5xi3-3xi2+1 если i&lt;3, 3xi2-25 , если i&gt;=3 // і - индекс, число после і -...

Определить значения трех средних элементов вектора - C++
Дан вектор V с нечетным количеством элементов N (≥ 3). Определить значения трех средних элементов вектора после того, как вектор будет...

Исправить программу на собственные значения и им соответствующие вектора - C++
Ребята вот смотрите: программа в принципе работает правильно (считает собственное значение L верно), НО собственный вектор матрицы, а...

Определить значения двух наименьших элементов вектора - C++
С клавиатуры ввести вектор целых чисел. Определить значения двух наименьших элементов вектора. Если они не одинаковые, то заменить эти...

Вектора и Матрицы в с++ - C++
Есть 2 проблемы с векторами и матрицами никак не могу сообразить как перевести в с++. 1.Введите числовую прямоугольную матрицу и...

Оптимальный способ нахождения максимального значения в столбце двумерного вектора - C++
Имеется матрица (двумерный вектор) значений: typedef std::vector&lt;float&gt; TvFloat; typedef std::vector&lt;TvFloat&gt; TvvFloat; ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru