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

С++ для начинающих

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

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

16.05.2008, 21:53. Просмотров 1181. Ответов 3
Метки нет (Все метки)

дана задача

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++
Пожалуйста,срочно. Сформировать текстовый файл f1.Переписать символы из файла f1 в файл f2 по n символов в строке.

Текст, состоящий не более чем из 255 символов, разбить на строки длиной не более 50 символов в строке - C++
Текст, состоящий не более чем из 255 символов, разбейте на строки длиной не более 50 символов в строке. Переносите только на месте...

Отформатировать текст по n символов в строке - C++
Отформатировать текст по n символов в строке (встасить равномерно между словами пробелы, чтобы длина строк была равна n).

В тексте удалить каждое слово с четным числом символов, продублировать каждое слово с нечетным числом символов - C++
Помогите пожалуйста!!!!!!!Задан текст, состоящий из слов, записанных через запятые и,или пробел, и заканчивающийся точкой. Длина текста не...

В строке заменить каждый символ «!» числом, равным индексу этого символа в строке - C++
В заданной строке заменить каждый символ «!» числом, равным индексу этого символа в строке. Сделал просто замену символа на любой ...

записать текст в матрицу по строкам, а затем переписать по спирали от центра. Прочитать зашифрованный текст - C++
Зашифровать текст следующим образом: записать его в матрицу по строкам, а затем переписать по спирали от центра. Прочитать зашифрованный...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
MsDos
5 / 5 / 1
Регистрация: 13.05.2008
Сообщений: 91
21.05.2008, 12:10 #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  [ТС] #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
5 / 5 / 1
Регистрация: 13.05.2008
Сообщений: 91
23.05.2008, 19:07 #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 заполняться не будет.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
23.05.2008, 19:07
Привет! Вот еще темы с ответами:

Дан текст, содержащий 30 символов. Подсчитать количество вхождений символов А и Б. - C++
Ребят , помогите плиз , послезавтра экзамен , вот нашел возможные задание , может кто подсказать , или показать решения ? Язык : С++/...

В строке символов найти максимальную подпоследовательность символов, являющуюся палиндромом - C++
Народ, помогите пожалуйста. Нужно написать программу, используя динамический массив. Вот условие задачи: В строке символов найти...

Выяснить, является ли текст числом - C++
Дан текст. Выяснить, является ли он числом. Отрицательные числа содержат в начале знак минус

Строка, слово с макс. числом символов - C++
В строке(не превышает 300 символов), введенной с клавиатуры найти и вывести слово(если таких несколько, то последнее) с максимальным числом...


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
23.05.2008, 19:07
Ответ Создать тему
Опции темы

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