Технический форум
Вернуться   Технический форум > Программирование > Форум программистов > Помощь студентам


Ответ
 
Опции темы Опции просмотра
Старый 25.11.2012, 15:39   #1 (permalink)
Night_Rain
Новичок
 
Регистрация: 25.11.2012
Сообщений: 9
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
По умолчанию Составить программу, которая выделяет отдельные слова и числа

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

Спасибо
Night_Rain вне форума   Ответить с цитированием

Старый 25.11.2012, 15:39
Helpmaster
Member
 
Аватар для Helpmaster
 
Регистрация: 08.03.2016
Сообщений: 0

Эти ссылки могут раскрыть глаза на решение проблемы

Помогите составить программу
Помогите составить программу
Написать программу, которая считывает текст из файла и выводит на экран предложения

Старый 25.11.2012, 17:14   #2 (permalink)
Vladimir_S
Специалист
 
Аватар для Vladimir_S
 
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 26,360
Сказал(а) спасибо: 289
Поблагодарили 507 раз(а) в 165 сообщениях
Репутация: 91953
По умолчанию

Главное - продолжайте хранить великую тайну языка программирования, на котором должно быть выполнено задание. И ни-ко-му, даже под пытками. Особенно нам!
__________________
With Mozilla Firefox - straight to communism!
Vladimir_S вне форума   Ответить с цитированием
Старый 25.11.2012, 17:46   #3 (permalink)
Night_Rain
Новичок
 
Регистрация: 25.11.2012
Сообщений: 9
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
По умолчанию

Извините пожалуйста.
Pascal
Night_Rain вне форума   Ответить с цитированием
Старый 25.11.2012, 18:53   #4 (permalink)
Vladimir_S
Специалист
 
Аватар для Vladimir_S
 
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 26,360
Сказал(а) спасибо: 289
Поблагодарили 507 раз(а) в 165 сообщениях
Репутация: 91953
По умолчанию

Цитата:
Сообщение от Night_Rain Посмотреть сообщение
Извините пожалуйста.
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.jpg  
__________________
With Mozilla Firefox - straight to communism!
Vladimir_S вне форума   Ответить с цитированием
Старый 25.11.2012, 22:56   #5 (permalink)
Night_Rain
Новичок
 
Регистрация: 25.11.2012
Сообщений: 9
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
По умолчанию

Такая штука при вводе предложения или какого-нибудь значения
Миниатюры
aacuiyiiue.jpg  
Night_Rain вне форума   Ответить с цитированием
Ads

Яндекс

Member
 
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
Старый 26.11.2012, 06:16   #6 (permalink)
Léon
С# - learn or die
 
Аватар для Léon
 
Регистрация: 17.12.2011
Сообщений: 2,438
Записей в дневнике: 8
Сказал(а) спасибо: 21
Поблагодарили 49 раз(а) в 11 сообщениях
Репутация: 19701
По умолчанию

Владимир писал прогу на Free Pascal. И она работает. А у вас PascalABC.
Léon вне форума   Ответить с цитированием
Старый 26.11.2012, 12:01   #7 (permalink)
Vladimir_S
Специалист
 
Аватар для Vladimir_S
 
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 26,360
Сказал(а) спасибо: 289
Поблагодарили 507 раз(а) в 165 сообщениях
Репутация: 91953
По умолчанию

Цитата:
Сообщение от 11Angelav Посмотреть сообщение
Владимир писал прогу на Free Pascal. И она работает. А у вас PascalABC.
Да уж. Вообще при упоминании этого глючного недоразумения по имени PascalABC во мне пробуждается зверь, рычащий с использованием ненормативной лексики.
Night_Rain, попробуйте так. Введите дополнительную переменную
blablabla:Char;
и перед КАЖДОЙ манипуляцией с элементами строк (то, что у меня S[i], Wrd[j][i] и т.д.) вставьте строки типа
blablabla:=S[i];
blablabla:=Wdr[j][i];
и т.п., и дальше работайте с переменной blablabla. Авось так не подавится.
__________________
With Mozilla Firefox - straight to communism!
Vladimir_S вне форума   Ответить с цитированием
Ads

Яндекс

Member
 
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
Ответ

Опции темы
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Выкл.
HTML код Выкл.
Trackbacks are Вкл.
Pingbacks are Вкл.
Refbacks are Выкл.




Часовой пояс GMT +4, время: 05:28.

Powered by vBulletin® Version 6.2.5.
Copyright ©2000 - 2014, Jelsoft Enterprises Ltd.