• Добро пожаловать на компьютерный форум Tehnari.ru. Здесь разбираемся с проблемами ПК и ноутбуков: Windows, драйверы, «железо», сборка и апгрейд, софт и безопасность. Форум работает много лет, сейчас он переехал на новый движок, но старые темы и аккаунты мы постарались сохранить максимально аккуратно.

    Форум не связан с магазинами и сервисами – мы ничего не продаём и не даём «рекламу под видом совета». Отвечают обычные участники и модераторы, которые следят за порядком и качеством подсказок.

    Если вы у нас впервые, загляните на страницу о форуме и правила – там коротко описано, как задать вопрос так, чтобы быстро получить ответ. Чтобы создавать темы и писать сообщения, сначала зарегистрируйтесь, а затем войдите под своим логином.

    Не знаете, с чего начать? Создайте тему с описанием проблемы – подскажем и при необходимости перенесём её в подходящий раздел.
    Задать вопрос Новые сообщения Как правильно спросить
    Если пришли по старой ссылке со старого Tehnari.ru – вы на нужном месте, просто продолжайте обсуждение.

Составить программу, которая выделяет отдельные слова и числа

Night_Rain

Ученик
Регистрация
25 Ноя 2012
Сообщения
9
Реакции
0
Баллы
0
Составить программу, которая выделяет отдельные слова и числа

Составить программу, которая выделяет отдельные слова и числа из введенной пользователем строки. Словом считается последовательность букв, разделяемых одним или несколькими пробелами или знаками препинания. Числом считается последовательность цифр, разделяемых одним или несколькими пробелами, которая может включать точку в качестве разделителя целой и дробной части и знак минус, стоящий в начале.
Слова поместить в массив слов, числа поместить массив чисел. Найти в массивах самое короткое слово и минимальное число.
Вывести на экран слова в столбик. Например, если исходная строка ’Длина пути равна 1 метр.’, то на экран будет выведено:
Д п р м
л у а е
и т в т
н и н р
а а

Спасибо
 
Главное - продолжайте хранить великую тайну языка программирования, на котором должно быть выполнено задание. И ни-ко-му, даже под пытками. Особенно нам!
 
Извините пожалуйста.
Pascal
 
Извините пожалуйста.
Pascal
Тогда получите:
Код:
Var
 S:String;
 W,Wrd:Array[1..100] of String;
 M:Array[1..100,1..100] of Char;
 Num:Array[1..100] of Real;
 i,j,Nw,Lmax,Nnumb,Nword,Shrt_W_Num,Min_Num:Byte;
 Code:Integer;
 R:Real;

Begin  
 Writeln('Enter the string:');
 Readln(S);
 Nw:=1;
 i:=0;
 W[Nw]:='';
 Repeat
  Inc(i);
  If (S[i]<>' ') and (i<=Length(S)) then
   W[Nw]:=W[Nw]+S[i]
  else
  If S[i]=' ' then
   begin
    repeat
     Inc(i);
    until S[i]<>' ';
    Dec(i);
    Inc(Nw);
    W[Nw]:='';
   end;
 Until i>Length(S);

 Nword:=0;
 Nnumb:=0;
 For i:=1 to Nw do
  begin
   VAL(W[i],R,Code);
   if Code=0 then
    begin
     Inc(Nnumb);
     Num[Nnumb]:=R;
    end
   else
    begin
     Inc(Nword);
     Wrd[Nword]:=W[i];
    end;
  end;

 Writeln;
 Writeln('Array of words:');
 Write(Wrd[1]);
 For i:=2 to Nword do Write(' '+Wrd[i]);
 Writeln;
 Writeln;

 Writeln('Array of numbers:');
 Write(Num[1]:0:3);
 For i:=2 to Nnumb do Write(' ',Num[i]:0:3);
 Writeln;
 Writeln;

 Lmax:=Length(Wrd[1]);
 Shrt_W_Num:=1;
 For i:=2 to Nword do
  begin
   if Length(Wrd[i])>Lmax then Lmax:=Length(Wrd[i]);
   if Length(Wrd[i])<Length(Wrd[Shrt_W_Num]) then Shrt_W_Num:=i;
  end;

 Min_Num:=1;
 For i:=2 to Nnumb do
  If Num[i]<Num[Min_Num] then Min_Num:=i;

 Writeln('Shortest word is "'+Wrd[Shrt_W_Num]+'";  Minimal number is ',Num[Min_Num]:0:3);

 Writeln;
 For i:=1 to Nword do
  For j:=1 to Lmax do
   M[i,j]:=' ';

 For j:=1 to Nword do
  For i:=1 to Length(Wrd[j]) do
   M[i,j]:=Wrd[j][i];

 For i:=1 to Nword do
  begin
   For j:=1 to Lmax do
    Write(M[i,j]+' ');
   Writeln;
  end;

 Readln;

End.
 

Вложения

  • FP01.webp
    FP01.webp
    10.9 KB · Просмотры: 360
Такая штука при вводе предложения или какого-нибудь значения
 

Вложения

  • Безымянный.webp
    Безымянный.webp
    14.6 KB · Просмотры: 368
Владимир писал прогу на Free Pascal. И она работает. А у вас PascalABC.
 
Владимир писал прогу на Free Pascal. И она работает. А у вас PascalABC.
Да уж. Вообще при упоминании этого глючного недоразумения по имени PascalABC во мне пробуждается зверь, рычащий с использованием ненормативной лексики.
Night_Rain, попробуйте так. Введите дополнительную переменную
blablabla:Char;
и перед КАЖДОЙ манипуляцией с элементами строк (то, что у меня S, Wrd[j] и т.д.) вставьте строки типа
blablabla:=S;
blablabla:=Wdr[j];
и т.п., и дальше работайте с переменной blablabla. Авось так не подавится.
 
Назад
Сверху