Форум программистов, компьютерный форум, киберфорум
Turbo Pascal
Войти
Регистрация
Восстановить пароль
 
Рейтинг 5.00/8: Рейтинг темы: голосов - 8, средняя оценка - 5.00
0 / 0 / 0
Регистрация: 12.03.2012
Сообщений: 17
1

Напишите программу, которая во введенном предложении меняет местами слова минимальной и максимальной длины.

27.03.2012, 20:07. Просмотров 1471. Ответов 3
Метки нет (Все метки)

Напишите программу, которая во введенном предложении меняет местами слова минимальной и максимальной длины.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
27.03.2012, 20:07
Ответы с готовыми решениями:

Определить в предложении слова максимальной и минимальной длины и поменять их местами. C
Доброе время суток!:) Уважаемы программисты, помогите, пожалуйста решить задачу: Дана строка...

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

Поменять местами слова максимальной и минимальной длины в строке
Задание: Дана строка. Подсчитать количество символов в каждом слове. Сформировать новую строку,...

Напишите программу, которая выдаст на экран пять слов максимальной длины из слова "ЭЛЕКТРИЧЕСТВО"
Напишите программу, которая выдаст на экран пять слов максимальной длины из слова "ЭЛЕКТРИЧЕСТВО".

3
Почетный модератор
7953 / 3924 / 2464
Регистрация: 30.10.2011
Сообщений: 5,377
27.03.2012, 22:50 2
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
33
34
35
36
37
38
39
40
41
42
43
uses crt;
var s,sl,smin,smax: string;
    i,dmin,dmax,imax,imin: integer;
begin
write('Введите строку ');
readln(s);
s:=s+' '; sl:='';dmin:=length(s);dmax:=0;
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;
          imin:=i-dmin;
          end;
       if length(sl)>dmax then
          begin
          dmax:=length(sl);
          smax:=sl;
          imax:=i-dmax;
          end;
       sl:='';
       end;
writeln ('Самое короткое слово "',smin,'" длиной в ',dmin,' символов');
writeln ('Самое длинное  слово "',smax,'" длиной в ',dmax,' символов');
if imax>imin then
   begin
   delete (s,imax,dmax);
   insert (smin,s,imax);
   delete (s,imin,dmin);
   insert (smax,s,imin);
   end else
   begin
   delete (s,imin,dmin);
   insert (smax,s,imin);
   delete (s,imax,dmax);
   insert (smin,s,imax);
   end;
writeln(s);
readkey
end.
1
0 / 0 / 0
Регистрация: 12.03.2012
Сообщений: 17
28.03.2012, 11:32  [ТС] 3
если не трудно опишите первую часть програмы. что там происходит?
0
Почетный модератор
7953 / 3924 / 2464
Регистрация: 30.10.2011
Сообщений: 5,377
28.03.2012, 18:41 4
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
33
34
35
36
37
38
39
40
41
42
43
uses crt;
var s,sl,smin,smax: string;
    i,dmin,dmax,imax,imin: integer;
begin
write('Введите строку ');                //запрашиваем строку
readln(s);
s:=s+' '; sl:='';dmin:=length(s);dmax:=0;       //к строке добавляем пробел (чтобы при деление на слова последнее не пропало), переменная слова пока пуста, считаю, что минимальное слово и есть строка (просто дальше уже некуда) , длина максимального (вдруг строка пуста) равна 0
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   //если длина слова больше 0 и меньше минимального (значит, мы нашли еще более маленькое слово)
          begin
          dmin:=length(sl);                            //новое значение минимальной длины - длина найденного слова
          smin:=sl;                                    //минимальное слово - текущее слово
          imin:=i-dmin;                                //узнаем, где начало минимального слова - из индекса текущего символа вычитаем длину слова
          end;
       if length(sl)>dmax then                        //если длина больше максимального
          begin
          dmax:=length(sl);                           //макс. длине назначаем макс длине новое значение
          smax:=sl;                                   //помещаем в переменную для макс слова новое слово
          imax:=i-dmax;                               //узнаем, где начало минимального слова - из индекса текущего символа вычитаем длину слова
          end;
       sl:='';                                        //очищаем переменную слова для формирования нового слова
       end;
writeln ('Самое короткое слово "',smin,'" длиной в ',dmin,' символов');
writeln ('Самое длинное  слово "',smax,'" длиной в ',dmax,' символов');
if imax>imin then
   begin
   delete (s,imax,dmax);
   insert (smin,s,imax);
   delete (s,imin,dmin);
   insert (smax,s,imin);
   end else
   begin
   delete (s,imin,dmin);
   insert (smax,s,imin);
   delete (s,imax,dmax);
   insert (smin,s,imax);
   end;
writeln(s);
readkey
end.
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
28.03.2012, 18:41

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

Написать программу, которая во введенном с клавиатуры двохзачному числе меняет местами цифры
Написать программу, которая во введенном с клавиатуры двохзачному числе меняет местами цифры. Не...

Даны два массива. Напишите программу, которая находит такую последовательность элементов максимальной длины, которая содержится и в первом, и во вт
Помогите написать программу.Даны два массива. Напишите программу, которая находит такую...

В файле заменить все слова максимальной длины на слова минимальной длины
Нужно в считанном из файла тексте заменить все слова максимальной длины на слова минимальной длины,...

Запустите тренажёр «ЛамПанель». Напишите и отладьте программу, которая меняет местами значение регистров R2 и
Запустите тренажёр «ЛамПанель». Напишите и отладьте программу, которая меняет местами значение...


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.