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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 17.11.2008, 13:45   #1
kadaffi
 
Регистрация: 16.11.2008
Сообщений: 5
По умолчанию процедуры в С++

Помогите решить задачу
Задача.
Описать процедуру SwapLine(A,m,n,k1,k2) осуществляющую перемену местами строк вещественной матрицы А размера m*n с номерами k1 и k2 Двумерный массив А-входной и выходной параметр, прочие параметры - входные. Используя эту процедуру, поменять для данной матрицы А размера m*n строки с номерами k1 и k2
Что то не получается, вот пример кода

Код:
#include <iostream.h>
#include <stdlib.h>
#include <math.h>
float *MakeArray (int m,int n);
void PrintArray(float *A,int m,int n);
void SwapLine(float *A,int m,const n,int k1,int k2);
int main()
{
	int const m=4;
	int const n=3;
	int k1=1;
	int k2=2;
	float* arr = MakeArray(m,n);

	cout<<"Print Amn: \n";
	PrintArray(arr,m,n);
	SwapLine( arr,m,n,k1,k2);
	PrintArray(arr,m,n);
	delete[] arr;
	cin>>k1;
	return 0;
}

float *MakeArray (int m,int n)
{	
	float *newarr=new float [m*n];
	for (int i=0;i<m;i++)
	{
		for (int j=0;j<n;j++)
		{
		newarr[i*m+j]=(float)(100-rand()%100)/(rand()%7+1);
		
		}
	}
	return newarr;
}
void PrintArray(float *A,int m,int n)
{
	for (int i=0;i<m;i++)
	{
		for (int j=0;j<n;j++)
		{
			cout<<A[i*m+j]<<" ";

		}
		cout<<"\n";
	}
}
void SwapLine(float *A,int m,const n,int k1,int k2)
{
	int flag1;
	int flag2;
	float *Temp1;
	float *Temp2;
	for (int i=0;i<m;i++)
	{
		if (i==k1)
		{
			for (int j=0;j<n;j++)
			{
				Temp1[j]=A[i*m+j];
				flag1=1;
			}
		}
		if (i==k2)
		{
			for (int j=0;j<n; j++)
			{
				Temp2[j]=A[i*m+n];
				flag2=1;
			}
		}
	}
	if ((flag1==1) && (flag2=1))
	{
		for (int j=0;j<n; j++)
			{
				A[j*m+k1]=Temp2[j];
				
			}
		for (int i=0;i<n; i++)
			{
				A[i*m+k2]=Temp1[i];
	
			}
	}
}

Последний раз редактировалось ACE Valery; 10.04.2012 в 19:52.
kadaffi вне форума Ответить с цитированием
Старый 17.11.2008, 16:01   #2
ivan89
Пользователь
 
Аватар для ivan89
 
Регистрация: 22.09.2008
Сообщений: 59
По умолчанию

Вот держи
Код:
#include <iostream>
#include <cstdlib>
using namespace std;
int n,m;
void MakerArray(float A[][10])
{
   for(int i=0; i<n; i++)
     for(int j=0; j<m; j++)
           A[i][j]=(float)(100-rand()%100)/(rand()%7+1);
}
void PrintArray(float A[][10])
{
   for(int i=0; i<n; i++)
   {
    for(int j=0; j<m; j++)
       cout<< A[i][j] <<"  ";
        cout<<endl;
    }
}
void SwapLine(float A[][10],int k1, int k2)
{
    float temp;
   for(int j=0; j<m; j++)
    {
     temp=A[k1][j];
     A[k1][j]=A[k2][j];
     A[k2][j]=temp;
    }

}

int main()
{
     cout<<"vvedi n:=";
     cin>>n;
     cout<<"vvedi m:=";
     cin>>m;
     float array[10][10];
     MakerArray(array);
     cout<<"do\n";
     PrintArray(array);
     cout<<endl;
     cout<<"posle\n";
     SwapLine(array,1,2);
      PrintArray(array);
return 0;
}
ivan89 вне форума Ответить с цитированием
Старый 17.11.2008, 16:27   #3
kadaffi
 
Регистрация: 16.11.2008
Сообщений: 5
По умолчанию

Большое спасибо!
kadaffi вне форума Ответить с цитированием
Старый 17.11.2008, 17:04   #4
kadaffi
 
Регистрация: 16.11.2008
Сообщений: 5
По умолчанию обработка текстового файла

Задача
Подсчитать число предложений в заданном текстовом файле (текст на английском языке). Предложением считается последовательность символов, начинающихся с пробела и прописной буквы и заканчивающихся точкой
Что то не получается, вот пример кода

#include <iostream.h>
#include <stdio.h>
#include<stdlib.h>
#include<fstream.h>


int main(int argc, char* argv[])
{
ifstream inFile;
inFile.open("f.txt");
int k=0;
char *simb,*next,*next2;
while (inFile.get(simb))
{

if (simb==' ')
{

while (!(next==' '))
{

if ((next2>=60)&& (next2<==90))
{
istream& ignore(int n=1,int delim='.');
}
}

}
k++;
}
cout>>"K: ">>k;
return 0;
}
kadaffi вне форума Ответить с цитированием
Старый 17.11.2008, 18:47   #5
ivan89
Пользователь
 
Аватар для ivan89
 
Регистрация: 22.09.2008
Сообщений: 59
Радость

вот ответ
Код:
#include <iostream>
#include <cctype>
#include<fstream>
int main()
{
   using namespace std;
    ifstream inFile;
    inFile.open("f.txt");
    int k=0,k1=0,k2=0; 
     char simb;
    while (!inFile.eof())
     {
      inFile>>simb;
       if(simb=='_') 
          k1++;
       if(isalpha(simb))
          k2++;
       if(simb=='.')
          k++;
	}

   if(k1>=0 && k2>0)
      cout<<"K: "<<k-1;
return 0;
}
ivan89 вне форума Ответить с цитированием
Старый 17.11.2008, 19:22   #6
kadaffi
 
Регистрация: 16.11.2008
Сообщений: 5
По умолчанию

Благодарю..
kadaffi вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Запуск процедуры из процедуры с дополнением 1sal1 Общие вопросы Delphi 3 06.10.2008 21:54
процедуры Killbrum Помощь студентам 5 10.06.2008 08:59
процедуры FIIR БД в Delphi 9 26.02.2008 11:26
процедуры FIIR Помощь студентам 2 26.02.2008 08:12