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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 28.05.2009, 23:24   #1
АполинАрия
Пользователь
 
Регистрация: 26.05.2009
Сообщений: 10
По умолчанию Pascal. СтрокИ.

Помогите пожалуйста...

1)Дана строка S.
Заменить все символы являющиеся цифрами на ***

2) Дан массив из 10 строк.
Отпечатать только те строки, в которых не менее трёх символов равны первому символу строки.

Заранее спасибо!
АполинАрия вне форума Ответить с цитированием
Старый 28.05.2009, 23:46   #2
spamer
Software Developer
Старожил
 
Аватар для spamer
 
Регистрация: 19.12.2008
Сообщений: 2,070
По умолчанию

1)Что то такое:

Код:
var
digit: array[0..9] of char = ('0', '1', '2', '3', '4', '5', '6', '7', '8', '9');

procedure TForm1.Button1Click(Sender: TObject);
var
  s: String;
  i,j: Integer;
begin
s:= Edit1.Text;
for i:=1 to length(s) do
  for j:= 0 to 9 do
  begin
    if s[i] = digit[j] then
    s[i]:= '*';
  end;
Edit2.Text:= s;
end;
Будь проще и люди к тебе потянутся
spamer вне форума Ответить с цитированием
Старый 28.05.2009, 23:49   #3
__STDC__
Участник клуба
 
Аватар для __STDC__
 
Регистрация: 16.03.2009
Сообщений: 1,013
По умолчанию

там на 3 *... insert лучше юзать.. и вместо массива и двух циклов - множество...
Код:
digit:set of char; 
digit := ['0'..'9'];
что-нибудь такое
Uguu~

Последний раз редактировалось __STDC__; 28.05.2009 в 23:52.
__STDC__ вне форума Ответить с цитированием
Старый 28.05.2009, 23:50   #4
АполинАрия
Пользователь
 
Регистрация: 26.05.2009
Сообщений: 10
По умолчанию

__STDC__ - Это как?

spamer - Спасибо огромноЕ!
:-*
АполинАрия вне форума Ответить с цитированием
Старый 28.05.2009, 23:53   #5
spamer
Software Developer
Старожил
 
Аватар для spamer
 
Регистрация: 19.12.2008
Сообщений: 2,070
По умолчанию

АполинАрия - помог, нажми на весы слева.
Будь проще и люди к тебе потянутся
spamer вне форума Ответить с цитированием
Старый 28.05.2009, 23:55   #6
__STDC__
Участник клуба
 
Аватар для __STDC__
 
Регистрация: 16.03.2009
Сообщений: 1,013
По умолчанию

Если переписать немного код spamer'a, то как-то так
Код:
procedure TForm1.Button1Click(Sender: TObject);
var
  digit:set of char;
  s: String;
  i,j: Integer;
begin
s:= Edit1.Text;
digit := ['0'..'9'];
for i:=1 to length(s) do
    if (s[i] in digit) then begin
       delete(s,i,1);
       insert('***',s,i);
    end;

Edit2.Text:= s;
end;
Хотя это не хорошо.. так будет заменяться только одна цифра.. Ну в моем варианте... т.к. как там три звезды вставляется и длина строки меняется.. если одну ставить, то все ок.. тем более надо на паскале код.. я бы так сделал
Код:
var
  digit:set of char;
  s: String;
  i,j: Integer;
begin
readln(s);
i:=1;
digit := ['0'..'9'];
while (i <= length(s)) do 
    if (s[i] in digit) then begin
       delete(s,i,1);
       insert('***',s,i);
       inc(i,3);
    end else inc(i);
writeln(s);
end.
Uguu~

Последний раз редактировалось __STDC__; 29.05.2009 в 00:01.
__STDC__ вне форума Ответить с цитированием
Старый 29.05.2009, 00:09   #7
АполинАрия
Пользователь
 
Регистрация: 26.05.2009
Сообщений: 10
По умолчанию

Тобишь во второй версии просто через цикл и всё?
АполинАрия вне форума Ответить с цитированием
Старый 29.05.2009, 00:14   #8
__STDC__
Участник клуба
 
Аватар для __STDC__
 
Регистрация: 16.03.2009
Сообщений: 1,013
По умолчанию

во второй версии во-первых это паскаль, а не делфи, а во-вторых там отсутствует массив, порождающий, на мой взгляд, лишний цикл.. Причем во второй версии программа ближе к заданию.. вставляются 3 *, как и просят..
вторая задача - два цикла... один перебирает строки, второй символы в текущей строке.. если текущий символ в текущей строке равен первому символу текущей строки - увеличиваем счетчик, если он равен трем - прерываем вложенный цикл, выводим строку, обнуляем счетчик, повторяем для след. строки.. писать лень на паскале, сами уж как-нибудь попробуйте)
Uguu~
__STDC__ вне форума Ответить с цитированием
Старый 29.05.2009, 00:16   #9
АполинАрия
Пользователь
 
Регистрация: 26.05.2009
Сообщений: 10
По умолчанию

Ум, понятно, спасибО!
Постораюсь, может что интересное и получится))

Последний раз редактировалось АполинАрия; 29.05.2009 в 00:25.
АполинАрия вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Pascal. Строки cudalover Помощь студентам 2 11.04.2009 15:34
Pascal.Задача на строки. Amenus Помощь студентам 12 03.02.2009 23:32
Строки и Массивы. Pascal. 4 задачи Naper214 Помощь студентам 11 28.12.2008 13:51
Pascal. Строки. Dexterello Помощь студентам 2 20.12.2008 17:42
Строки в Pascal Альбиша Помощь студентам 3 18.12.2008 22:36