0 / 0 / 0
Регистрация: 19.12.2016
Сообщений: 6
1

Написать собственную реализацию функции copy.

19.12.2016, 21:23. Показов 609. Ответов 12
Метки нет (Все метки)

Написать собственную реализацию функции copy.Сравнить результаты работы стандартного и своего вариантов процедуры для произвольной строки.


Delphi
1
2
3
4
5
6
function MyCopy(source:string; startchar,count:integer):string;
var
....
begin
....
end;
При написании своей функции работать со строками как с массивом символов ( с доступом по индексу, например S[3]). Также можно использовать стандартные функции:
1.Length(s);
2.SetLength(s,n)
__________________
Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
19.12.2016, 21:23
Ответы с готовыми решениями:

Написать собственную реализацию процедуры Delete
Написать собственную реализацию процедуры Delete, которая будет работать так же (удалять из строки...

Создать класс принтер и написать его реализацию
Создать класс принтер и написать его реализацию. Результат всех методов должен отображаться на...

Объясните функции Pos() и Copy()
Я чуть-чуть не вогнал функции Pos(), Copy(). Объясните, пожалуйста, человеческим языком.

Неправильная работа функции Copy
Всем привет. На форме в делфи имеется компонент Memo1, в который записываются некие данные в...

12
Джоуи
1073 / 635 / 240
Регистрация: 05.05.2015
Сообщений: 3,546
Записей в блоге: 2
19.12.2016, 21:58 2
Delphi
1
2
3
4
5
6
7
8
function MyCopy(src:string; startch,cnt:integer): string;
var i: integer;
begin
result := ''; // на случай неудачи, или result := src;
if Length(src) < (startch + cnt) then exit; // можно опустить
for i := startch to startch + cnt - 1 do
result := result + src[i];
end;
Результат:
Delphi
1
Edit1.Text := MyCopy(Edit2.Text, SpinEdit1.Value, SpinEdit2.Value);
Миниатюры
Написать собственную реализацию функции copy.  
1
0 / 0 / 0
Регистрация: 19.12.2016
Сообщений: 6
19.12.2016, 22:26  [ТС] 3
спасибо большое
0
Джоуи
1073 / 635 / 240
Регистрация: 05.05.2015
Сообщений: 3,546
Записей в блоге: 2
19.12.2016, 22:51 4
Цитата Сообщение от Kovalt Посмотреть сообщение
спасибо большое
Цитата Сообщение от Joey Посмотреть сообщение
"Спасибо" – не воробей, вылетит – в карман не положишь.
__)
0
0 / 0 / 0
Регистрация: 19.12.2016
Сообщений: 6
20.12.2016, 22:26  [ТС] 5
я вам так благодарен, что мое спасибо в ваш карман просто не войдет

Добавлено через 23 часа 17 минут
В задаче не нужно использовать конкатенацию строк +: result := result + src[i];
Доступ к элементам строки по номеру src[i], result[j], можно использовать Length и SetLength.
0
Джоуи
1073 / 635 / 240
Регистрация: 05.05.2015
Сообщений: 3,546
Записей в блоге: 2
21.12.2016, 00:21 6
Цитата Сообщение от Kovalt Посмотреть сообщение
В задаче не нужно использовать конкатенацию строк +
не нужно или нельзя?
0
пофигист широкого профиля
4602 / 3062 / 850
Регистрация: 15.07.2013
Сообщений: 17,660
21.12.2016, 02:32 7
Цитата Сообщение от Kovalt Посмотреть сообщение
В задаче не нужно использовать конкатенацию строк +: result := result + src[i];
Цитата Сообщение от Kovalt Посмотреть сообщение
При написании своей функции работать со строками как с массивом символов ( с доступом по индексу, например S[3]). Также можно использовать стандартные функции:
1.Length(s);
2.SetLength(s,n)
Интересно что (какое решение) хотел увидеть препод???
0
88 / 84 / 43
Регистрация: 02.05.2015
Сообщений: 766
21.12.2016, 04:56 8
Цитата Сообщение от northener Посмотреть сообщение
Интересно что (какое решение) хотел увидеть препод???

Не по теме:

байтовый динамический массив ??

1
0 / 0 / 0
Регистрация: 19.12.2016
Сообщений: 6
21.12.2016, 11:28  [ТС] 9
я вот сам не знаю
0
Почетный модератор
64272 / 47571 / 32739
Регистрация: 18.05.2008
Сообщений: 115,182
21.12.2016, 12:09 10
Может нужно символы строки для копирования собрать в массив array of char, и как результат выводить его?

Добавлено через 3 минуты
Типа так.
Delphi
1
2
3
4
5
6
7
8
type mas=array of char;
function MyCopy(src:string; startch,cnt:integer): mas;
var i: integer;
begin
setlength(result,cnt);
for i:=0 to cnt - 1 do
result[i]:=src[startch+i];
end;
1
1039 / 855 / 335
Регистрация: 08.12.2016
Сообщений: 3,283
21.12.2016, 12:28 11
Цитата Сообщение от Puporev Посмотреть сообщение
Может нужно символы строки для копирования собрать в массив array of char, и как результат выводить его?
это и есть string. Если в объявлении заменить array of char на string, то даже текст править практически не придется (нужно только учесть, что индексация в string илет с 1-го элемента, а не с 0-го)
0
Почетный модератор
64272 / 47571 / 32739
Регистрация: 18.05.2008
Сообщений: 115,182
21.12.2016, 12:42 12
YuryK, Прочитайте условие и уточнения автора темы. И не надо умничать.
0
1039 / 855 / 335
Регистрация: 08.12.2016
Сообщений: 3,283
21.12.2016, 12:54 13
т.е. твой вариант с типом, отличным от постановки задачи - умно, а тот же самый Код без выкрутасов - умничать? Логика

Delphi
1
2
3
4
5
6
7
function MyCopy(src:string; startch,cnt:integer): string;
var i: integer;
begin
setlength(result,cnt);
for i:=1 to cnt do
result[i]:=src[startch + i - 1];
end;
естественно, cnt проверить надо, т.к. Copy('1234', 1, 5) = '1234', а не '1234 '
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
21.12.2016, 12:54
Помогаю со студенческими работами здесь

Как написать собственную рекурсивную реализацию функции last?
как написать собственную рекурсивную реализацию функции last ?

Написать собственную реализацию стандартной функции strstr
Написать собственную реализацию стандартной функции strstr. предназначена для поиска строки...

Написать собственную реализацию функции strcmp() согласно условию
Постановка задачи такова,нужно переписать strcmp ,чтобы где не важен был бы регистр букв и...

Создать собственную реализацию функции rtrim
Написать реализацию функции rtrim. Ее прототип выглядит следующим образом: char *rtrim...


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

Или воспользуйтесь поиском по форуму:
13
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2023, CyberForum.ru