Форум программистов, компьютерный форум CyberForum.ru

Переписать текст на страницу с числом символов в строке M - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 10, средняя оценка - 4.80
diden
0 / 0 / 0
Регистрация: 13.05.2008
Сообщений: 17
16.05.2008, 21:53     Переписать текст на страницу с числом символов в строке M #1
дана задача

1.Исходный текст записан на странице с числом символов в строке L.
Переписать его на страницу с числом символов в строке M.Слова не разрывать.
Считать, что текст помещается на странице целиком.

кароче с массива одного размера нельзя копировать в массив другого размера,поэтому я с помощью вычислений смогу определить номер куда капировать,тоесть если мне нужно скопировать текст в 100 символов с массива 50строк на 30 столбцов в массив 50 строк на 50 столбцов,я делю 100/30=3.3
так вот из этого мы можем выразить-что 3-это номер столбца а а номер позиции 100 -3*30=10.
правильно ли это или можно как то по другому сделать

Добавлено через 53 минуты
еще один вопрос,как мне поставитть счетчик на кол-во вводимых символов.тоесть в той задаче как мне определить коли-во символов в тексте
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
16.05.2008, 21:53     Переписать текст на страницу с числом символов в строке M
Посмотрите здесь:

Как переписать текст из одного файла в другой? C++
Отформатировать текст по n символов в строке C++
C++ Переписать строки в другой файл, в которых имеется более 30 символов
C++ Строки. Преобразовать строку, заменяя каждую цифру соответствующим ей числом символов нижнего подчеркивания
В тексте удалить каждое слово с четным числом символов, продублировать каждое слово с нечетным числом символов C++
Выяснить, является ли текст числом C++
C++ Переписать символы из одного файла в друглй по n символов в строке
Строка, слово с макс. числом символов C++
В строке заменить каждый символ * числом, соответствующим номеру вхождения этого символа в строку C++
Переписать текст в другой файл, поменяв местами первое слово каждой строки с последним C++
C++ Шифр Виженера: переписать код так, чтобы программа не только зашифровала, но и расшифровала текст
C++ Найти во входной строке самую внутреннюю пару скобок {.} и переписать в выходную строку

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
MsDos
 Аватар для MsDos
5 / 5 / 1
Регистрация: 13.05.2008
Сообщений: 91
21.05.2008, 12:10     Переписать текст на страницу с числом символов в строке M #2
как я понимаю, в двух строчках не обязательно одинаковое количество слов, поэтому причем тут столбцы.
алгоритм решения к задаче:
1. открываем файл на чтение - файл А, файл на запись - файл B
2. введем 2 переменные k=0 и t=0 - индексы рассматриваемых в настоящий момент символов строки - и константу R = max(L;M) - min(L;M).

пока не кончится А
{ пока не кончится строчка длины min(L;M), слово А копируем в В, наращивая k (от t до k+t)
если min(L;M)=L, новая строчка А; k=0;
елз, новая строчка B; t=0;
пока не кончится строчка длины max(L;M), слово А копируем в В, наращивая t (от k до k+t) }

как распознаются слова: создаются две переменные, одна из которых содержит номер ячейки предыдущего пробела, а вторая - настоящего. часть строки символов от пробела.
можно сразу посмотреть, где будут располагаться пробелы на промежутке от t до k+t и копировать кусок строчки от первого пробела до последнего на этом отрезке (экономится время, только если M и L очень большие)

Добавлено через 3 минуты
вводимых - if(kbhit()) i++.
в строчке - i = strlengh('строка'), точнее - в хелп
i - количество символов
diden
0 / 0 / 0
Регистрация: 13.05.2008
Сообщений: 17
23.05.2008, 15:49  [ТС]     Переписать текст на страницу с числом символов в строке M #3
Исходный текст записан на странице с числом символов в строке L.
Переписать его на страницу с числом символов в строке M.Слова не разрывать.
Считать, что текст помещается на странице целиком.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
#include <iostream.h>
#include <conio.h>
void main()
{
int n,l,k,t,L,M,i,j;
cout<<"pa3Mep:";
cin>>n;
 
cout<<"M";
cin>>M;
cout<<"L";
cin>>L;
 
char **A,**B;
A=new char*[n];
for(i=0;i<L;i++)
A[i]=new char[L];
for(i=0;i<L;i++)
for(j=0;j<L;j++)
cin>>A[i][j];// это я массив ввожу 
 
t=0;
for(i=0;A[i]!='0';i++)
for(j=0;A[j]!='0';j++)
t++;//вот тут у меня большие вопросы,так как этим циклом я хотел посчитать количество введенных символов в массив А
 
B=new char*[n];
for(i=0;i<n;i++)
B[i]=new char[M];
k=M%t;
l=t-k*M;
A[i][j]=B[k][l];
for(i=0;i<n;i++)
for(j=0;j<n;j++)
cout<<B[k][l];
}
я кое че сам написал но не знаю правильно ли,основное чего там нету это функции чтоб копировать слова без разрыва,помогите будьте добры http://www.codeforum.ru/images/smilies/smile.gif
MsDos
 Аватар для MsDos
5 / 5 / 1
Регистрация: 13.05.2008
Сообщений: 91
23.05.2008, 19:07     Переписать текст на страницу с числом символов в строке M #4
Сообщение было отмечено автором темы, экспертом или модератором как ответ
если ошибок нет, можно трессировать.
что такое размер n? если это число никак не связано с L, то могут возникнуть ошибки как минимум тут:
C++
1
2
3
4
5
6
7
A=new char*[n];
for(i=0;i<L;i++)  // к примеру, если L>n, то некорректное исполььзование указателей. наверно, тут все же n
A[i]=new char[L];
 
for(i=0;A[i]!='0';i++)
for(j=0;A[j]!='0';j++)
t++;
тут либо один цикл for(i=0;A[i]!='0';i++), либо два цикла с условием на A[i][j]. в первом случае должно считаться.

l=t-k*M; кажется, тут l=M-k*t; иначе либо l=t, либо l<0 всегда.
в цикле:
C++
1
for(i=0;i<n;i++)
будет выполняться только строчка:
C++
1
B[i]=new char[M];
все последующее - один раз. к моменту, когда компилятор дойдет до строчки
C++
1
A[i][j]=B[k][l];,
i=n, а j такое, что A[j]=0 и меняться более не будут, поэтому массив B заполняться не будет.
Yandex
Объявления
23.05.2008, 19:07     Переписать текст на страницу с числом символов в строке M
Ответ Создать тему
Опции темы

Текущее время: 01:38. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru