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

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

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 17.05.2009, 09:34   #1
nark25
Пользователь
 
Регистрация: 13.04.2009
Сообщений: 11
Стрелка работа с текстовыми фаилами)

Задачка такая. В текстовом фаиле написана матрица (размер матрицы любои), нужно эту матрицу транспонировать, поменять четные и нечетные столбцы местами. Вот написал для транспонирования матрицы, а для обмена четными и нечетными столбцами к чего начать не знаю(
Код:
#include<iostream.h>
#include<math.h>
#include<stdlib.h>
#include<fstream.h>
int i,n,j,m;
void main ()
{
 ifstream f;
 ofstream g;
 float *a;
 a=*new float[100][100];
 cin>>n; cin>>m;
 f.open("111.txt",ios::in);
  if (f){  while (!f.eof())
		 { f>>*(a+i+j);
		  j++; if (j==m) {j=0;i++;}
		      }
		    }

   f.close ();

   g.open ("111.txt",ios::app);  g<<endl;
  for ( j=0; j<m; j++)          {   g<<endl;
       for (i=0; i<n; i++)
	 {
 g<<*(a+i+j);}}
 g.close();
}
И переписать программку с помошью подпрограмм
nark25 вне форума Ответить с цитированием
Старый 17.05.2009, 12:16   #2
Sazary
В тени
Старожил
 
Аватар для Sazary
 
Регистрация: 19.12.2008
Сообщений: 5,788
По умолчанию

Так. Раз у вас матрица в файле, то логично и размер читать оттуда-же.
Память выделяете неверно.
Сначала читайте размер, а потом уже выделяйте.
Цитата:
а для обмена четными и нечетными столбцами к чего начать не знаю(
Идете по строкам. Если i - нечетное (помним, что нумерация от 0), значит строка четная. Меняем ее элементы с предыдущей.

Что у вас вызвало трудности?
Вполне очевидно, чтобы что-то понять, необходимо книги читать.
Не нужно плодить бессмысленных тем. Вас Поиск избавит от многих проблем.

___________________________________ ___________________________________ _______
[=Правила форума=]_____[Поиск]_____[Литература по С++]____[Литература. Паскаль]
Sazary вне форума Ответить с цитированием
Старый 17.05.2009, 12:43   #3
nark25
Пользователь
 
Регистрация: 13.04.2009
Сообщений: 11
По умолчанию

написание всего этого
nark25 вне форума Ответить с цитированием
Старый 17.05.2009, 12:55   #4
Sazary
В тени
Старожил
 
Аватар для Sazary
 
Регистрация: 19.12.2008
Сообщений: 5,788
По умолчанию

Цитата:
Сообщение от nark25
написание всего этого
Ну это не ответ.
Во-первых, выделяйте память так:
Код:
f>>m>>n; // получили размеры
float **a = new float*[m];
for(i=0; i<m; i++)
 a[i] = new float[n];
И обращайтесь к элементам: a[i][j]. Уже проще?
И не забывайте освобождать память в конце программы:
Код:
for(i=0;i<m;i++)
 delete[] a[i];
delete[] a;
Задавайте конкретные вопросы. Что вам непонятно?
Вполне очевидно, чтобы что-то понять, необходимо книги читать.
Не нужно плодить бессмысленных тем. Вас Поиск избавит от многих проблем.

___________________________________ ___________________________________ _______
[=Правила форума=]_____[Поиск]_____[Литература по С++]____[Литература. Паскаль]
Sazary вне форума Ответить с цитированием
Старый 17.05.2009, 12:58   #5
nark25
Пользователь
 
Регистрация: 13.04.2009
Сообщений: 11
По умолчанию

как правильно написать условие для нахождения и обмена столбцов
nark25 вне форума Ответить с цитированием
Старый 17.05.2009, 12:59   #6
nark25
Пользователь
 
Регистрация: 13.04.2009
Сообщений: 11
По умолчанию

и еще переписать программуку с помошью подпрограмм???
nark25 вне форума Ответить с цитированием
Старый 17.05.2009, 13:04   #7
Sazary
В тени
Старожил
 
Аватар для Sazary
 
Регистрация: 19.12.2008
Сообщений: 5,788
По умолчанию

Цитата:
и еще переписать программуку с помошью подпрограмм???
Переписывать ничего не надо. Пишите с нуля.
В функцию будете посылать массив и его размеры:
Код:
function(mas,m,n);
А внутри функции обращайтесь с ним также, по двум индексам.
Цитата:
как правильно написать условие для нахождения и обмена столбцов
Код:
if(j%2!=0) //меняем текущий столбец и предыдущий
Вполне очевидно, чтобы что-то понять, необходимо книги читать.
Не нужно плодить бессмысленных тем. Вас Поиск избавит от многих проблем.

___________________________________ ___________________________________ _______
[=Правила форума=]_____[Поиск]_____[Литература по С++]____[Литература. Паскаль]
Sazary вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Работа с фаилами паскаль Igomax Помощь студентам 10 13.05.2009 18:40
Работа с типизированными фаилами! aks Помощь студентам 6 19.02.2009 13:55
Работа с текстовыми файлами KroSer63 Общие вопросы по Java, Java SE, Kotlin 0 19.12.2008 20:03
Работа с Текстовыми файлами wwww Общие вопросы Delphi 5 29.10.2007 11:17
Работа с текстовыми файлами DartMrakkk Общие вопросы Delphi 3 14.07.2007 16:52