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

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

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

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 04.06.2011, 12:55   #1
neutron
 
Регистрация: 04.06.2011
Сообщений: 4
По умолчанию задачи на File,Text, Param из Абрамяна

Если кто сможет помочь написать программы эти, буду очень признателен
на языке С++( пишу в VS2008) и пока не понимаю синтаксис.
И может кто подскажет хорошую литературы, где описана работа с файлами.

String67. Дано предложение, зашифрованное по правилу, описанному в зада-нии String66.(String66. Дана строка-предложение. Зашифровать ее, поместив вначале все символы, расположенные на четных позициях строки, а затем, в обратном порядке, все символы, расположенные на нечетных позициях (например, строка «Программа» превратится в «ргамамроП»). Расшифровать это предложение.

Код:
#include<iostream>
#include<string>
using namespace std;
void main()
{
	string s("rgammroP");
	cout<<s<<endl;
	string s2;
	int i,k=1,n=0;
	for(i=0;i<s.length();i++)
	{
		s2[k]=s[i];
		k+=2;
		n++;
	}
	k=0;
	for(i=s.length()-1;i=n;i-=2)
	{
		s2[k]=s[i];
		k+=2;
	}
	cout<<s2<<endl;
}
File48º. Даны три файла целых чисел одинакового размера с именами SA, SB, SC и строка SD. Создать новый файл с именем SD, в котором чередовались бы элементы исходных файлов с одним и тем же номером:
A1, B1, C1, A2, B2, C2, … .

File67. Дан строковый файл, содержащий даты в формате «день/месяц/год», причем под день и месяц отводится по две позиции, а под год — четыре (например, «16/04/2001»). Создать два файла целых чисел, первый из кото-рых содержит значения дней, а второй — значения месяцев для дат из исходного строкового файла (в том же порядке).

File86. Дан файл вещественных чисел, содержащий ненулевую часть верхне-треугольной матрицы (по строкам). Создать новый файл, содержащий все элементы данной матрицы (по строкам).

Text10. Дано целое число K и текстовый файл. Вставить пустую строку после строки файла с номером K. Если строки с таким номером нет, то оставить файл без изменений.

Text29. Дан текстовый файл. Вывести первое слово текста наибольшей длины. Словом считать набор символов, не содержащий пробелов и ограниченный пробелами или началом/концом строки.

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

Param29. Описать процедуру SortCols(A, M, N), выполняющую сортировку по возрастанию столбцов целочисленной матрицы A размера M × N (столбцы сравниваются лексикографически: если первые элементы столбцов различ-ны, то меньшим считается столбец, содержащий меньший первый элемент; если первые элементы столбцов равны, то анализируются их вторые эле-менты и т. д.). Двумерный массив A является входным и выходным пара-метром. Используя процедуру SortCols, отсортировать столбцы данной матрицы A размера M × N.

Param48. Описать функцию IntFileSize(S) целого типа, возвращающую коли-чество элементов в файле целых чисел с именем S. Если файл не существу-ет, то функция возвращает –1. С помощью этой функции найти количество элементов в трех файлах с данными именами.


Param10. Описать процедуру DoubleX(A, N, X), дублирующую в целочислен-ном массиве A размера N элементы, равные целому числу X. Массив A и число N являются входными и выходными параметрами. С помощью этой процедуры продублировать числа XA, XB, XC в массивах A, B, C размера NA, NB, NC соответственно и вывести размер и содержимое полученных масси-вов.


и

Matrix72. Дана матрица размера M × N. Перед первым столбцом, содержащим только положительные элементы, вставить столбец из единиц. Если тре-буемых столбцов нет, то вывести матрицу без изменений.
не вижу где ошибка у меня, т.к не вставляется столбец.
Код:
#include <iostream>
#include <time.h>
#include <iomanip>
using namespace std;

void main (){
int m,n,i,j,temp=0,st=0,k=0;
srand(time(NULL));
cout<< "Enter M: ";
cin>> m;
cout<<"Enter N: ";
cin>>n;
float **a=new float *[m];
	for(i=0;i<m;i++)
		a[i]=new float [n];
	for(i=0;i<m;i++)
	{
		for(j=0;j<n;j++)
		{
a[i][j] = (float)(rand() % 21 - 10);
cout<<setw(4)<<a[i][j];
		}
cout<<endl;
	}
cout<<endl;
for(j=0; j<n; j++)
{
	for( i=0; i<m; i++)
	{
		if(a[i][j]<0)
		{
			temp++;
		}
	}
if(temp==0)
{
st=j;
break;
}
}
if(temp==0)
{
cout<<"Stolbec- "<<st<<" ";
cout<<endl;
float **b=new float *[m];
	for(i=0;i<m;i++)
		b[i]=new float [n+1];
	for(i=0;i<m;i++){
		for(j=0;j<n+1;j++){
		b[i][j]=0;
		}
	}
	for(i=0;i<m;i++)
	{b[i][st]=1;
	cout<<b[i][st]<<" ";
	}
	if(st==0)
	{
	for(i=0;i<m;i++)
	{
		for(j=1;j<n+1;j++)
		{
			b[i][j]=a[i][k];
			k++;
		}
	}
	k=0;
	if((st>0)&&(st<n+1))
	{
		for(i=0;i<m;i++)
		{
		for(j=0;j<st;j++)
		{
			b[i][j]=a[i][k];
			k++;
		}
		}
	
		for(i=0;i<m;i++)
		{
		for(j=st+1;j<n+1;j++)
		{
			b[i][j]=a[i][k];
			k++;
		}
		}

	}
	if(st==n)
	{
		for(i=0;i<m;i++){
			for(j=0;j<n;j++){
				b[i][j]=a[i][j];
			}
		}
	}
		for(i=0;i<m;i++){
			for(j=0;j<n+1;j++){
				cout<<setw(4)<<b[i][j];
			}
			cout<<endl;
		}
		cout<<endl;
}
else if(temp>0)
{
for(i=0;i<m;i++)
{
	for(j=0;j<n;j++)
	{
		cout<<setw(4)<<a[i][j];
	}
	cout<<endl;
}
}
}
}

Последний раз редактировалось Stilet; 04.06.2011 в 13:32.
neutron вне форума Ответить с цитированием
Старый 04.06.2011, 13:07   #2
neutron
 
Регистрация: 04.06.2011
Сообщений: 4
По умолчанию

на файл 48 пока как понял
Код:
#include <iostream>
#include <stdio.h>
#include<iomanip>
#include<fstream>
using namespace std;
int main()
{
int Sa[10];
int Sb[10];
int Sc[10];
int i;
char Sd[]="Numbers.txt";
ofstream fout;
ifstream fin1,fin2,fin3;
fin1.open("Sa.txt", ios::in);
for(i=0;i<10;i++)
cin>>Sa[i];


fin2.open("Sb.txt",ios::in);
for(i=0;i<10;i++)
cin>>Sb[i]; 


fin3.open("Sc.txt", ios::in);
for(i=0;i<10;i++)
cin>>Sc[i];

fout.open(Sd, ios::out);
for(i=0;i<10;i++)
cout<<Sa[i]<<setw(4)<<Sb[i]<<setw(4)<<Sc[i]<<endl;
fin1.close();
fin2.close();
fin3.close();
fout.close();
return 0;
}
что исправить не знаю, чтобы считало и записало правильно
знаю как работать с функцией freopen, но она только для одного потока..
neutron вне форума Ответить с цитированием
Старый 04.06.2011, 13:53   #3
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
String67. Дано предложение, зашифрованное по правилу, описанному в зада-нии String66.(String66. Дана строка-предложение. Зашифровать ее, поместив вначале все символы, расположенные на четных позициях строки, а затем, в обратном порядке, все символы, расположенные на нечетных позициях (например, строка «Программа» превратится в «ргамамроП»). Расшифровать это предложение.
Код:
#include<string>
#include <locale>
std::string s="Программа";

int _tmain(int argc, _TCHAR* argv[])
{
	std::string s2,s3;
	int i;s2+=" ";s3=" ";
	for(i=1;i<s.length();i+=2){ s2+=s[i];s2+=" ";}	int k=-2;
	for(--i;i>=0;i-=2) 		s2[i]=s[k+=2];
	for(i=1;i<s2.length();i+=2){ s3+=s2[i];s3+=" ";}	k=-2;
	for(--i;i>=0;i-=2) 		s3[i]=s2[k+=2];
	setlocale(LC_ALL,"russian");
	printf("%s\n%s",s2.c_str(),s3.c_str());

	getchar();
	return 0;
}
Подойдет?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 04.06.2011, 14:12   #4
neutron
 
Регистрация: 04.06.2011
Сообщений: 4
По умолчанию

спасибо)
чтобы студио не ругалась заменил на
int main(int argc, char *argv[]) и сделал переменную i unsigned int,
но дает ошибку прога пр запуске
в месте
Код:
for(i=1;i<s2.length();i+=2)
	{ 
		s3+=s2[i];
		s3+=" ";
	}
попробую ошибку исправить, тогда выложу что вышло.

Последний раз редактировалось neutron; 04.06.2011 в 14:19.
neutron вне форума Ответить с цитированием
Старый 04.06.2011, 20:41   #5
neutron
 
Регистрация: 04.06.2011
Сообщений: 4
По умолчанию

Matrix72
все работает.
Код:
#include <iostream>
#include <time.h>
#include <iomanip>
using namespace std;

void main (){
int m,n,i,j,temp=0,st=0,k=0,l=0;
srand(time(NULL));
cout<< "Enter M: ";
cin>> m;
cout<<"Enter N: ";
cin>>n;
float **a=new float *[m];
	for(i=0;i<m;i++)
		a[i]=new float [n];
	for(i=0;i<m;i++)
	{
		for(j=0;j<n;j++)
		{
a[i][j] = (float)(rand() % 21 - 10);
cout<<setw(4)<<a[i][j];
		}
cout<<endl;
	}
cout<<endl;
for(j=0; j<n; j++)
{
	for( i=0; i<m; i++)
	{
		if(a[i][j]<0)
		{
			temp++;
		}
	}
if(temp==0)
{
st=j;
break;
}
}
if(temp==0)
{
cout<<"Stolbec- "<<st<<" ";
cout<<endl;
float **b=new float *[m];
	for(i=0;i<m;i++)
		b[i]=new float [n+1];
	for(i=0;i<m;i++){
		for(j=0;j<n+1;j++){
		b[i][j]=0;
		}
	}
	for(i=0;i<m;i++)
	{b[i][st]=1;
	}
	if(st==0)
	{
	for(i=0;i<m;i++)
	{
		k=0;
		for(j=1;j<n+1;j++)
		{
			b[i][j]=a[i][k];
			k++;
		}

	}
	k=0;
	if((st>0)&&(st<n+1))
	{
		for(i=0;i<m;i++)
		{
			k=0;
		for(j=0;j<st;j++)
		{
			b[i][j]=a[i][k];
			k++;
		}
		}
	l=k;
		for(i=0;i<m;i++)
		{
			k=l;
		for(j=st+1;j<n+1;j++)
		{
			b[i][j]=a[i][k];
			k++;
		}
		}

	}
	if(st==n)
	{
		for(i=0;i<m;i++){
			for(j=0;j<n;j++){
				b[i][j]=a[i][j];
			}
		}
	}
		for(i=0;i<m;i++){
			for(j=0;j<n+1;j++){
				cout<<setw(4)<<b[i][j];
			}
			cout<<endl;
		}
		cout<<endl;
}
else if(temp>0)
{
for(i=0;i<m;i++)
{
	for(j=0;j<n;j++)
	{
		cout<<setw(4)<<a[i][j];
	}
	cout<<endl;
}
}
}
}
neutron вне форума Ответить с цитированием
Ответ


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

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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Паскаль Text File String matrinishna Помощь студентам 0 11.04.2011 01:28
Как сделать чтоб вместо file.txt было значение Edit1.text quarty Общие вопросы Delphi 2 22.10.2010 16:54
File To Text HTL Общие вопросы Delphi 11 24.01.2010 11:28
С++. Решение задач из задачника Абрамяна. Amen Помощь студентам 7 17.02.2009 19:45
Text-> File.txt-> Console AquaSky Общие вопросы C/C++ 1 09.10.2008 19:53