Форум программистов, компьютерный форум, киберфорум
Pascal (Паскаль)
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.54/26: Рейтинг темы: голосов - 26, средняя оценка - 4.54
1 / 1 / 0
Регистрация: 21.10.2011
Сообщений: 7

Найти самое короткое слово начинающееся на букву "а", и поменять его с первым словом в строке

31.10.2011, 14:51. Показов 5503. Ответов 7
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Дана строка символов. Найти самое короткое слово начинающееся на букву "а", и поменять его с первым словом в строке.
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
31.10.2011, 14:51
Ответы с готовыми решениями:

Найти самое короткое слово начинающееся на букву "а", и поменять его с первым словом в строке
Найти самое короткое слово начинающееся на букву "а", и поменять его с первым словом в строке

Найти самое короткое слово начинающееся на букву "а", и поменять его с первым словом в строке
Найти самое короткое слово начинающееся на букву "а", и поменять его с первым словом в строке. Если не сложно, не могли бы Вы...

Найти самое короткое слово начинающееся на букву "А", и поменять его с первым словом в строке
Найти самое короткое слово начинающееся на букву "а", и поменять его с первым словом в строке. Помогите очень нужна!

7
uwsuws
02.04.2012, 20:38
Эта прога: "Найти самое короткое начало на а, и подсчитать количество".......но не получилось поменять местами!!!

Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
uses crt;
const rz=[' ','.',',',';',':','?','!'];
var s,sl,smin,sd,p,k: string;
    i,dmin: integer;
begin
clrscr;
writeln('Ââåäèòå ñòðîêó ');
readln(s);
 
sd:='';
for i:=1 to length(s) do
if(s[i]='à')and((i=1)or(s[i-1] in rz))then
  begin
  s:=s+' '; sl:='';dmin:=length(s);
  for i:=1 to length(s) do
    if s[i]<>' ' then sl:=sl+s[i]
       else
       begin
 
       if (length(sl)<dmin) and (length(sl)<>0) then
          begin
 
          dmin:=length(sl);
          smin:=sl;
          end;
       sl:='';
       end;
  end;
writeln;
writeln ('Ñàìîå êîðîòêîå ñëîâî íà÷èíàþùèåñÿ íà áóêâó "à" "',smin,'" äëèíîé â ',dmin,' ñèìâîëîâ');
       
end.
 Аватар для Mawrat
13113 / 5894 / 1708
Регистрация: 19.09.2009
Сообщений: 8,809
03.04.2012, 13:39
Цитата Сообщение от Leilochka777 Посмотреть сообщение
Дана строка символов. Найти самое короткое слово начинающееся на букву "а", и поменять его с первым словом в строке.
Решение:
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
program Project1;
 
type
  //Сведения о координатах слова.
  TWInfo = record
    Start, Len : Integer;
  end;
 
const
  //Множество разделителей слов.
  D = [' ', '.', ',', ':', ';', '!', '?', '-', #9, #10, #13];
  //Множество русских и английских букв "а".
  Da = ['А', 'а', 'A', 'a'];
var
  S, Sw : String;
  i, Cnt, Len, LenW, P1 : Integer;
  W1, W2 : TWInfo;
begin
  repeat
    //Исходный текст.
    Writeln('Задайте текст:');
    Readln(S);
    Len := Length(S);
 
    LenW := 0;
    Cnt := 0;
    //Начальное задание координат первого слова.
    W1.Start := 0;
    W1.Len := 0;
    //Начальное задание координат самого короткого слова из тех,
    //которые начинаются на букву "А".
    W2.Start := 0;
    W2.Len := Len + 1;
    for i := 1 to Len do begin
      //Пропуск разделителей.
      if S[i] in D then Continue;
      //Уточнение длины текущего слова.
      Inc(LenW);
      //Отслеживаем конец слова.
      if (i = Len) or (S[i + 1] in D) then begin
        Inc(Cnt); //Порядковый номер слова.
        P1 := i - LenW + 1;
        if Cnt = 1 then begin
          W1.Len := LenW;
          W1.Start := P1;
        end;
        if (LenW < W2.Len) and (S[P1] in Da) then begin
          W2.Len := LenW;
          W2.Start := P1;
        end;
        LenW := 0; //Обнуляем длину слова.
      end;
    end;
 
    if W1.Start = 0 then
      Writeln('В тексте нет слов.')
    else if W1.Start = W2.Start then
      Writeln('Первое слово является самым коротким, среди начинающихся на букву "А".')
    else begin //Меняем слова местами.
      //Запоминаем самое короткое слово.
      Sw := Copy(S, W2.Start, W2.Len);
      //Удаляем самое короткое слово.
      Delete(S, W2.Start, W2.Len);
      //На место самого короткого слова вставляем первое слово.
      Insert(Copy(S, W1.Start, W1.Len), S, W2.Start);
      //Удаляем первое слово.
      Delete(S, W1.Start, W1.Len);
      //На место первого слова записываем самое короткое слово.
      Insert(Sw, S, W1.Start);
      //Вывод результатов.
      Writeln('Изменённый текст:');
      Writeln(S);
    end;
 
    Writeln('Повторить - Enter. Выход - любой символ + Enter.');
    Readln(S);
  until S <> '';
end.
1
0 / 0 / 0
Регистрация: 03.03.2015
Сообщений: 2
03.03.2015, 20:10
здраствуйте. почему то у меня после s1 for не правильный. Знаете причину?
0
Эксперт Pascal/Delphi
6812 / 4568 / 4820
Регистрация: 05.06.2014
Сообщений: 22,434
03.03.2015, 20:15
strdv, здравствуйте. Какой for? В каком s1?
В программе, которую предоставил Mawrat, вообще нет s1
0
0 / 0 / 0
Регистрация: 03.03.2015
Сообщений: 2
03.03.2015, 20:24
извените. я хотел написать на первом примере. который введен на паскале. там 15 строка вводится как ошибка
0
Эксперт Pascal/Delphi
6812 / 4568 / 4820
Регистрация: 05.06.2014
Сообщений: 22,434
04.03.2015, 08:40
strdv, в той программе тоже нет ошибки. Но зачем она вам? ТС честно признается, что она нерабочая.
0
08.03.2015, 15:31

Не по теме:

Цитата Сообщение от ZX Spectrum-128 Посмотреть сообщение
ТС честно признается
ТС, очевидно, ни в чём не признаётся. ТС здесь Leilochka777, а о недоделках в программе говорит uwsuws в посте #2.

0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
08.03.2015, 15:31
Помогаю со студенческими работами здесь

Найти самое короткое слово, начинающееся на букву "а", и поменять его с первым словом в строке
Найти самое короткое слово начинающееся на букву &quot;а&quot;, и поменять его с первым словом в строке Буду очень благодарна ! Добавлено...

Найти самое короткое слово начинающееся на букву "а", и поменять его с первым словом в строке
Доброго времени суток! Изучаю java недавно. Помогите найти самое короткое слово начинающееся на букву &quot;а&quot;, и поменять его с...

Найти самое короткое слово, начинающееся с буквы ''а'', и поменять его с первым словом в строке
Дана строка символов. Найти самое короткое слово, начинающееся с буквы ''а'', и поменять его с первым словом в строке.

Найти самое короткое слово, начинающееся на "а" и поменять его с первым словом местами
Ребят, помогите пожалуйста! :) 1. Составить процедуру, в результате обращения к которой из первой заданной строки удаляется каждый...

Найти самое длинное слово, начинающееся с согласной буквы и поменять его с последним словом в строке
Найти самое длинное слово, начинающееся с согласной буквы и поменять его с последним словом в строке. Есть примерный код на pascal есть...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Новые блоги и статьи
Access
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
Фото: Daniel Greenwood
kumehtar 13.11.2025
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru