Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 10.12.2016, 01:33   #1
Ar2emiS
Пользователь
 
Регистрация: 18.10.2016
Сообщений: 27
По умолчанию Язык Си. Написать программу,которая считывает различные матрицы из файла и проводит с ними вычисления

Написать программу,которая считывает различные матрицы из файла и проводит с ними вычисления.
А именно, пример файла с матрицами matrix
Матрицы имеют всегда 5 строк, а количество столбцов последовательно изменяется от 2 до 4. Количество тех или иных матриц неизвестно.(только если в лоб пересчитать из файла,но это не реально, так как дальше файл будет очень большим)
Считав одну матрицу,с ней проводятся вычисления (какие неважно),далее считывается следующая матрица этого же количества столбцов.
Когда считались все матрицы одной размерности, необходимо вывести сообщение на экран, а далее приступить к считыванию матриц следующей размерности.
Вложения
Тип файла: txt matrix.txt (280 байт, 130 просмотров)
Ar2emiS вне форума Ответить с цитированием
Старый 10.12.2016, 12:26   #2
olej.tsil
Заблокирован
 
Регистрация: 29.11.2016
Сообщений: 215
По умолчанию

Цитата:
Сообщение от Ar2emiS Посмотреть сообщение
Матрицы имеют всегда 5 строк, а количество столбцов последовательно изменяется от 2 до 4. Количество тех или иных матриц неизвестно.(только если в лоб пересчитать из файла,но это не реально, так как дальше файл будет очень большим)
Считав одну матрицу,с ней проводятся вычисления (какие неважно),далее считывается следующая матрица этого же количества столбцов.
Когда считались все матрицы одной размерности, необходимо вывести сообщение на экран, а далее приступить к считыванию матриц следующей размерности.
Задача достаточно элементарная:
1. считываете 5 раз свои строки полностью как строки (fgets, gets, ...);
2. из строки считываете циклом (по одному) свои столбцы (для этой строки) sscanf, пока этот scanf не вернёт 0 считанных значений;
3. goto п.1 для следующей матрицы;

Задача была бы куда интереснее, если снять ограничение на 5 строк в матрице.
olej.tsil вне форума Ответить с цитированием
Старый 10.12.2016, 13:02   #3
Ar2emiS
Пользователь
 
Регистрация: 18.10.2016
Сообщений: 27
По умолчанию

Вы правы, задача не трудная, но не получается довести до ума, возникает проблема при переходе к считыванию матрицы другой размерности. Могли бы Вы код написать?
Ar2emiS вне форума Ответить с цитированием
Старый 10.12.2016, 13:36   #4
olej.tsil
Заблокирован
 
Регистрация: 29.11.2016
Сообщений: 215
По умолчанию

Цитата:
Сообщение от Ar2emiS Посмотреть сообщение
Могли бы Вы код написать?
Здесь ведь раздел форума "Помощь студентам"? ... а не раздел "Сдать сессию вместо студента"?
Я помог студенту - растолковав на пальцах, "до немогу" как это сделать.

А раздел форума "Сдать сессию вместо студента" - вот здесь: Фриланс
olej.tsil вне форума Ответить с цитированием
Старый 10.12.2016, 17:46   #5
Ar2emiS
Пользователь
 
Регистрация: 18.10.2016
Сообщений: 27
По умолчанию

есть написанный код, но он считывает только одинаковые матрицы.

Код:
#include <stdio.h>      
#include <ctype.h>
#include <string.h>
#include <stdlib.h>
int main(void)
{
int i,j,k=5,n,L=10,y,flag;
char S[L];
FILE *fp=fopen("matrix.txt", "r");
int **D;

for( n=2;n<=4;n++)
{
  D = (int**)malloc(k*sizeof(int*));
  for(i=0; i<k; i++)  
  {
   D[i] = (int*)malloc(n*sizeof(int));
  }
   y=n+1; //для запуска цикла
   while ((y-1)==n)
   {    
	 fgets(S, L, fp);
	 y=strlen(S); 
     for (j=0;j<n;j++)
	 {
	  D[0][j]=S[j]-'0';
	 }	
			
	 flag=999;
     for (i=1;i<k;i++)
     {
     fgets(S, L, fp);
	 y=strlen(S); 
	  
	 if (y-1!=n) {flag=0;break;}
          
	 for (j=0;j<n;j++)
	 {
	 D[i][j]=S[j]-'0';
	 }
	 }

     if (flag==999)
	 {
       fgets(S, L, fp); //пустая строка в файле
       for (i=0;i<k;i++)
       {
         for (j=0;j<n;j++)
	     {
		 printf("%d",D[i][j]);
		 }
		 printf("\n");
       }
         printf("\n");
	 }

   }
}
fclose(fp);
return 0;
}
Ar2emiS вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Нужно написать программу которая считывает из файла f целые числа и записывает их в файл h или g Гарри Паскаль, Turbo Pascal, PascalABC.NET 1 19.11.2015 18:27
. Написать программу, которая считывает из текстового файла три предложения и выводит их в обратном порядке. Tuns Помощь студентам 2 26.05.2014 20:34
Написать программу которая считывает текст из файла. Rinat777 Общие вопросы C/C++ 1 18.04.2013 21:23
Написать программу на с++, которая считывает текст из файла.. Дюша Помощь студентам 0 26.04.2012 19:09