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

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

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

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

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

Закрытая тема
Ваша тема закрыта, почему это могло произойти? Возможно,
Нет наработок или кода, если нужно готовое решение - создайте тему в разделе Фриланс и оплатите работу.
Название темы включает слова - "Помогите", "Нужна помощь", "Срочно", "Пожалуйста".
Название темы слишком короткое или не отражает сути вашего вопроса.
Тема исчерпала себя, помните, один вопрос - одна тема
Прочитайте правила и заново правильно создайте тему.
 
Опции темы Поиск в этой теме
Старый 02.01.2010, 16:58   #1
[COOLER]
 
Аватар для [COOLER]
 
Регистрация: 02.01.2010
Сообщений: 5
Печаль Задача на работу с массивом + char (Delphi в консольном режиме)

Дано предложение. Признак конца ввода - точка. В заданном слове после заданной буквы вставить другую заданную букву.
P.S. Предложение должно быть загнано в массив.
[COOLER] вне форума
Старый 02.01.2010, 17:19   #2
IT-man
АльTRUEи$т
Форумчанин
 
Аватар для IT-man
 
Регистрация: 19.03.2009
Сообщений: 784
По умолчанию

А вот это пример)))
Код:
program Project2;

{$APPTYPE CONSOLE}
uses
  SysUtils;
var s:string;
str:array[1..100] of string;
i,n,k:integer;
sub:string;
c,h:char;
begin
readln(s); // ввод строки
Readln(sub);// ввод слова
readln(c);// запрос символа после которого вставлять
Readln(h); // ввод символа который вставлять
i:=1;
k:=1;
while s[i] <>'.' do begin
if s[i]=' ' then inc(k)
else str[k]:=str[k]+s[i];
inc(i);
end;
for i:=1 to k do
if str[i]=sub then begin
n:=pos(c,str[i]);
if n<>0 then
insert(h,str[i],n+1);
end;
for i:=1 to k do write(str[i],' ');
readln;
end.
Цитата:
«Никто не войдет в Рай, имея хотя бы крупицу гордыни в своем сердце». «Аллах Красив и любит красоту. Гордыня означает отказ от истины и высокомерие»

Последний раз редактировалось IT-man; 02.01.2010 в 18:58.
IT-man вне форума
Старый 02.01.2010, 18:02   #3
RUSt88
Участник клуба
 
Регистрация: 29.12.2009
Сообщений: 1,166
По умолчанию

строка в принципе это и есть массив - массив символов.

допустим, A - заданная буква, после к-рой ставим др. заданную букву B, N - кол-во символов в строке S
(полностью нерабочий код)

procedure TForm1.Button1Click(Sender: TObject);
var
N, i, j: integer;
S: string;
A, B: char;
mass: array of char; \\динамический массив

begin
a:= 'd'; b:='x'; \\можно предложить ввести с клавы
s:= Edit1.Text; \\ имею ввиду что вводится строка в EditBox
n:= length(s) - 1;
for i:= 0 to n do
if s[i] = A then insert(b, s, i + 1); \\ вставляем букву где надо

\\записываем волучившуюсю строку в новый массив и выводим его
n:= length(s) - 1; \\заново считаем кол-во символов в строке
SetLength(mass, N + 1);\\устанавливаем размерность массива
for i := 0 to n do begin
mass[i]:= s[i];
edit1.Text := Edit1.Text + mass[i];
end;

Edit1.Text := s;
end;

в заданном слове сделаешь сам
прогер C\C++\C#\Delphi
ася: [семь 3]-[97]-[1 шесть]

Последний раз редактировалось RUSt88; 02.01.2010 в 18:06.
RUSt88 вне форума
Старый 02.01.2010, 18:21   #4
[COOLER]
 
Аватар для [COOLER]
 
Регистрация: 02.01.2010
Сообщений: 5
По умолчанию

Спасибо большое !
[COOLER] вне форума
Старый 02.01.2010, 18:43   #5
IT-man
АльTRUEи$т
Форумчанин
 
Аватар для IT-man
 
Регистрация: 19.03.2009
Сообщений: 784
По умолчанию

Ув.RUSt88 несколько поправочек
1) нету в консольном приложении ни эдитов не баттонов не тем более форм
2) нужен не массив символов,а массив слов (но это мое имхо )
Цитата:
«Никто не войдет в Рай, имея хотя бы крупицу гордыни в своем сердце». «Аллах Красив и любит красоту. Гордыня означает отказ от истины и высокомерие»

Последний раз редактировалось IT-man; 02.01.2010 в 18:57.
IT-man вне форума
Старый 02.01.2010, 18:48   #6
RUSt88
Участник клуба
 
Регистрация: 29.12.2009
Сообщений: 1,166
Счастье

Цитата:
Сообщение от IT-man Посмотреть сообщение
Ув.RUSt88 несколько поправочек
1) нету в консольном приложении ни эдитов не баттонов не тем более форм
2) нужен не массив символов,а массив слов (но это мое имхо )
ЭТО ПРИМЕР!!!
Если человек понимает, то сообразит где поменять EditBox.Text на string, а EditBox.Text := S на WriteLn(S)
прогер C\C++\C#\Delphi
ася: [семь 3]-[97]-[1 шесть]
RUSt88 вне форума
Старый 02.01.2010, 19:00   #7
IT-man
АльTRUEи$т
Форумчанин
 
Аватар для IT-man
 
Регистрация: 19.03.2009
Сообщений: 784
По умолчанию

Цитата:
ЭТО ПРИМЕР!!!
Странный пример(надо уж тогДа было на псевдокоде)
А вот пост№2 - это пример)))
Цитата:
«Никто не войдет в Рай, имея хотя бы крупицу гордыни в своем сердце». «Аллах Красив и любит красоту. Гордыня означает отказ от истины и высокомерие»
IT-man вне форума
Старый 02.01.2010, 19:33   #8
[COOLER]
 
Аватар для [COOLER]
 
Регистрация: 02.01.2010
Сообщений: 5
Восклицание

Ребят, я вообще ничего не понял в том коде, можете мне написать финальную версию безо всяких замен и с комментариями ? Пожалуйста.
P.S. Массив типа char состоит из букв.

Последний раз редактировалось [COOLER]; 02.01.2010 в 19:37.
[COOLER] вне форума
Старый 02.01.2010, 19:49   #9
RUSt88
Участник клуба
 
Регистрация: 29.12.2009
Сообщений: 1,166
Злость скажем нет халявщикам!

Цитата:
Сообщение от [COOLER] Посмотреть сообщение
Ребят, я вообще ничего не понял в том коде, можете мне написать финальную версию безо всяких замен и с комментариями ? Пожалуйста.
P.S. Массив типа char состоит из букв.
халявы ищешь? тебе итман написал, там чуток исправить!

хочешь халявы? Получай!
вот алгоритм:
ищешь заданное слово в заданной строке посимвольно (с помощью цикла сравнивай каждую буковку, она - не она, хорошая - плохая)
когда найдешь, ищешь заданную буковку в найденном слове посимвольно (с помощью цикла сравнивай каждую буковку, она - не она, хорошая - плохая)
когда найдешь, вставляешь заданную буковку на позицию +1 от найденной.
запишешь полученную строку в массив с помощью цикла посимвольно
и наконец чуть-чуть живого кода

WriteLn(S); \\ну или что там у тебя
ReadLn() \\это чтоб консолька не убегала с глаз, а команды ждала
прогер C\C++\C#\Delphi
ася: [семь 3]-[97]-[1 шесть]

Последний раз редактировалось RUSt88; 02.01.2010 в 19:58.
RUSt88 вне форума
Старый 02.01.2010, 20:16   #10
[COOLER]
 
Аватар для [COOLER]
 
Регистрация: 02.01.2010
Сообщений: 5
Радость

Большое всем спасибо !
[COOLER] вне форума
Закрытая тема


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
С++.Чтение из файла - проблема с массивом типа char. AgIon Общие вопросы C/C++ 4 07.12.2009 00:39
Задача на работу с двумерным массивом.Найти количество прямоугольников. anta Общие вопросы C/C++ 6 05.01.2009 15:23
Задача в Delphi с двумерным массивом SirLionheART Помощь студентам 2 14.12.2008 13:11