Форум программистов
 
Контакты: о проблемах с регистрацией, почтой и по другим вопросам пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail.

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

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


Донат для форума - использовать для поднятия настроения себе и модераторам

А ещё здесь можно купить рекламу за 15 тыс руб в месяц! ) пишите сюда - alarforum@yandex.ru

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

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

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

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

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

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

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

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

Код:

#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 вне форума   Ответить с цитированием
Ответ

Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

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


20:01.


Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2019, Jelsoft Enterprises Ltd.

Проекты отопления, пеллетные котлы, бойлеры, радиаторы
интернет магазин respective.ru