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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 28.03.2011, 09:06   #1
Aleksandr15
Новичок
Джуниор
 
Регистрация: 28.03.2011
Сообщений: 2
По умолчанию Из текста удалить все цифры, стоящие перед первой буквой

Текст вводится пользователям , и программа нужна без стрингов в паскале, не проходили мы стринги
массив,циклы-то что понимаю
Кому не лень помогите
Aleksandr15 вне форума Ответить с цитированием
Старый 28.03.2011, 09:24   #2
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Цитата:
Текст вводится пользователям , и программа нужна без стрингов в паскале, не проходили мы стринги
массив,циклы-то что понимаю
ну давайте начнём с того, что Вы напишите код для ввода данных в исходный массив и вывод введённых данных на экран.

потом Вы скажете, что по Вашему является буквой (желательна запись в синтаксисе множеств в Паскаль, например буква это ['a'..'z','A'..'Z']
Serge_Bliznykov вне форума Ответить с цитированием
Старый 28.03.2011, 10:11   #3
Sparkman
220400
Форумчанин
 
Аватар для Sparkman
 
Регистрация: 21.05.2010
Сообщений: 726
По умолчанию

Цитата:
Сообщение от Aleksandr15 Посмотреть сообщение
Текст вводится пользователям , и программа нужна без стрингов в паскале, не проходили мы стринги
массив,циклы-то что понимаю
Кому не лень помогите
Код:
program programmersforum;
uses crt;
const digits : set of char = ['0'..'9'];
      bukva  : set of char = ['a'..'z','A'..'Z'];
      n = 10;
var a : array [1..n] of char;
    i,j,k,deleted : integer;
begin
     clrscr;
     writeln('Enter stringi:');
     for i:=1 to n do
     begin
          a[i] := readkey;
          write(a[i]);
     end;
     for i:=1 to n do
         if (a[i] in bukva) and (i>1) then break;
     j:=0;
     deleted:=0;
     while j<=n-i-deleted do
     begin
          inc(j);
          if a[j] in digits then
          begin
               for k:=j to n-1-deleted do
               a[k]:=a[k+1];
               dec(j);
               inc(deleted);
          end;
     end;
     writeln;
     writeln('Result:');
     for i:=1 to n-deleted do
     write(a[i]);
     readln;
end.
Cерьёзной помощи не ждите - помогаю в перерывах на "перекур".
Не существует ничего невозможного для человека, который не собирается ничего делать сам.
Не учите человека, если вы не его учитель.
Sparkman вне форума Ответить с цитированием
Старый 29.03.2011, 18:43   #4
Aleksandr15
Новичок
Джуниор
 
Регистрация: 28.03.2011
Сообщений: 2
По умолчанию

Код:
Program Szatie massiv
Const
  Dim=30;
  Scipra=['0'..'9'];
  Sbykva=['A'..'Z'];
Type
  TVector=Array[1..Dim] of Char;
Var
  Vector:TVector;
  DlinVect,I,J:Byte;
Begin
  Writeln('Vvedite text <=',Dim,' simvolov');
  Writeln('Konec vvoda po ENTER');
  DlinVect:=0;
  While not eoln do
    begin
       Inc(DlinVect);
       read(Vector[DlinVect]);
    end;
  Readln;  
{Всё это правильно}
  While Upcase(Sbykva) in Vector do
    begin
       I:=Vector[J];
       Vector[I];
    end;
  If I=1
    then
       Writeln('Ydalytb ne4ego');
    else
       begin
         For J:=1 to Vector[I] do
            If Scipra in Vector
              then
                 Dec(DlinVect)
{Это уже до чего я дошёл, наверняка есть ошибки}


Ребят кому интересно помогите плиз !;)

Последний раз редактировалось Aleksandr15; 29.03.2011 в 21:34.
Aleksandr15 вне форума Ответить с цитированием
Старый 30.03.2011, 11:32   #5
GetMax
Форумчанин
 
Регистрация: 21.10.2010
Сообщений: 588
По умолчанию

Предлагаю такое решение. Никаких строк. Одни массивы:
Код:
  Var
  Mas:Array[1..1000] of Char;
  i,Kol,j:Byte;
  Simvol:Char;
Begin
  Readln(Kol);
  Writeln('Vvedite ',Kol,' simvolov');
  i:=0;
  Repeat
    Inc(i);
    Write('Vvedite ',i, '-y simvol ');
    Readln(Simvol);
    Mas[i]:=Simvol
  Until i >= kol;
  j:=0;
  Kol1:=0;
  i:=1;
  While i <= Kol do
  Begin
    If  (Mas[i] in ['0'..'9']) and (Mas[i+1] in ['a'..'z','A'..'Z']) then
    Begin
      For j:=i to Kol do
      Begin
        Mas[j]:=Mas[j+1];
      End;
      Dec(Kol);
      inc(i)
    End
    Else
    Inc(i)
  End;
  For i:=1 to Kol do Write(Mas[i]);
  Readln
End.
Пользователь не знает, чего он хочет, пока не увидит то, что он получил.
Для благодарностей WMR R145235935681
GetMax вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Из строки удалить все цифры. Shnurik_sh Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 1 24.11.2010 01:17
Удалить все символы между первой и второй двокрапкой. Wild_klas Помощь студентам 3 20.11.2010 21:57
Вывести слова с неповторяющейся в них первой буквой. ~SnusmumriK~ Помощь студентам 1 10.03.2010 13:03
Дано число. Отбросить в нем все цифры, стоящие левее самой правой единицы. SkApY Помощь студентам 5 09.11.2009 20:58