Студопедия — Нахождение наиболее короткого слова списка.
Студопедия Главная Случайная страница Обратная связь

Разделы: Автомобили Астрономия Биология География Дом и сад Другие языки Другое Информатика История Культура Литература Логика Математика Медицина Металлургия Механика Образование Охрана труда Педагогика Политика Право Психология Религия Риторика Социология Спорт Строительство Технология Туризм Физика Философия Финансы Химия Черчение Экология Экономика Электроника

Нахождение наиболее короткого слова списка.






Задан список из 8 слов. Найти самое короткое слово в списке. Если таких слов несколько, то распечатать их в один столбец.

Решение поставленной задачи сводится к нескольким этапам: ввести список слов в виде массива строковых переменных; подсчитать длину каждой строки; определить наименьшую из длин; распечатать те строки массива, длина которых совпадает с наименьшей.

Пример возможного решения поставленной задачи:

PROGRAM Str_min;

type M_st=array[1..8] of string[20];

M_int=array[1..8] of integer;

var s: M_st;

n: M_int;

i, min: integer;

begin

for i:=1 to 8 do

begin

writeln('Введите слово');

readln(s[i]);

n[i]:=length(s[i]) {Вычисление количества букв в i-ом слове }

end;

min:=n[1];

for i:=2 to 8 do

if min>n[i] then min:=n[i]; {Нахождение наименьшего из количеств букв}

writeln(‘Наиболее короткое слово’);

for i:=1 to 8 do

if n[i]=min then writeln(s[i]) {Печать слов, состоящих из наименьшего количества букв}

end.

В данной программе для обозначения слов используется массив строковых переменных s, для обозначений соответствующих им длин слов – целочисленный массив n. Наименьший элемент массива n хранится в виде переменной min.

3.4 Разработать программу, удаляющую из вводимой с клавиатуры строки пробелы между словами и записывающую в массив N длину (число символов) каждого слова. Длина текста – не более 80 символов. Число слов – не более 10. Наличие более одного символа ‘пробел’ подряд свидетельствует о конце строки.

Используемые в программе идентификаторы приведены в таблице 3.1.

Табл. 3.1

Обозначения Тип данных Примечание
A STRING Исходный текст, символьные данные
K INTEGER Количество символов в слове
L INTEGER Порядковый номер слова
I INTEGER Параметр цикла
A[I]   Текущий символ исходного текста
N ARRAY [1…10] OF INTEGER Массив, содержащий значения длины каждого слова исходного текста
N[L]   Значение длины слова номер L
J INTEGER Параметр цикла, используемого для перемещения всех следующих символов исходного текста на одну позицию влево после того, как обработано очередное слова.
PR INTEGER Переменная для управления повторной работой программы
OTVET BYTE Переменная для управления началом обработки введенной строки

Текст программы

Program Prim1;

Uses Crt;

Label 4;

VAR

N: ARRAY [1..10] OF INTEGER;

I, J, K, L: INTEGER;

A: STRING [80];

PR, OTVET:BYTE;

BEGIN

CLRSCR;

REPEAT

REPEAT

WRITELN (' Введите через пробел');

READLN (A);

WRITELN('Исходная строка');

WRITELN(A);

WRITELN ('Работаем дальше? 1 -да,0 -нет');

READLN (OTVET);

UNTIL OTVET=1;

K:=0;

L:=0;

PR:=0;

FOR I:=1 TO length(a) DO

IF (A[I]= ' ') THEN

BEGIN

L:=L+1;

N[L]:=K;

IF (A[I+1]=' ')THEN GOTO 4;

FOR J:=i TO length(a) DO

A[J]:= A[J+1];

K:=1

END

ELSE

begin

K:=K+1;

N[L+1]:= K-l;

end;

4:WRITELN ('Результирующая строка');

WRITELN (A);

WRITELN ('№ слова число букв');

FOR I:=1 TO L+1 DO

WRITELN (' N[',I,'] =',N[I]:6);

WRITELN('Обработать еще одну строку? 1 –да 0 -нет');

READLN(PR);

UNTIL PR=0

END.

 

ЗАДАНИЕ ДЛЯ САМОСТОЯТЕЛЬНОГО ВЫПОЛНЕНИЯ

4.1 Составьте и отладьте программу решения следующей задачи: Задана строка произвольной длины. Найдите количество символов в данной строке.Указание: Используйте фрагмент программы следующего вида:

writeln('Введите слово');

readln(s);

n:=length(s);

writeln('n=',n)

4.2 Дополните полученную программу: Определите, начинается ли слово со слога «Не». Указание: Воспользуйтесь условным оператором вида:

if (s[1]=’Н’) and (s[2]=’е’) then writeln('да, начинается') else writeln('нет');

4.3 Дополните полученную программу. Определите, сколько раз встречается буква «а» в данном слове.

Пример возможного решения:

k:=0;

for i:=1 to length(s) do

if s[i]=’a’ then k:=k+1;

writeln(‘k=’,k);

4.4 Выполните задание из указанного преподавателем варианта приложения Б.

4.5 Составьте и отладьте программу решения следующей задачи. Задан список из 7 слов произвольной длины. Найдите все слова списка, заканчивающиеся на букву «и».

Указание: Опишите переменную s как переменную типа array[1..7] of string, далее воспользуйтесь следующим программным фрагментом:

for i:=1 to 7 do

begin

writeln('Введите слово');

readln(s[i])

end;

writeln(‘Заканчиваются на букву -и’);

for i:=1 to 7 do

begin

n:=length(s[i]);

if s[i,n]=’и’ then writeln(s[i])

end;

4.6 Выполните задание из указанного преподавателем варианта приложения В.

4.7 Решите указанные преподавателем задачи из приложения Г.

КОНТРОЛЬНЫЕ ВОПРОСЫ

1.Как можно описать в программе строковые данные?

2.Перечислите процедуры для обработки строк.

3.Какие операции можно выполнять над строковыми данными?

4.Укажите область применения строковых данных.

5.Поясните порядок работы процедуры DELETE.

6.Поясните порядок работы процедуры INSERT.

7.Поясните порядок работы процедуры STR.

8.Поясните порядок работы процедуры VAL.

9.Поясните порядок работы функции LENGTH.

10.Поясните порядок работы функции COPY.

11.Поясните порядок работы функции CONCAT.

12.Поясните порядок работы функции POS.

13.Поясните порядок работы функции UPCASE.

Приложение А. Таблица обмена информацией (фрагмент) ASCII CODE

10-е Символ 10-е Символ 10-е Символ 10-е Символ 10-е Символ
      @   `   Б   Д
  !   A   a   В   Е
      B   b   Г   Ж
  #   C   c   Д   З
  $   D   d   Е   И
  %   E   e   Ж   К
  &   F   f   З   Л
  `   G   g   И   М
  (   H   h   К   Н
  )   I   I   Л   О
  *   J   j   М   П
  +   K   k   Н   Р
  ,   L   l   О   С
  -   M   m   П   Т
  .   N   n   Р   Ф
  /   O   o   С   Х
      P   p   Т   Ц
      Q   q   У   Ч
      R   r   Ф   Ш
      S   s   Х   Щ
      T   t   Ц   Ь
      U   u   Ч   Ъ
      V   v   Ш   Э
      W   w   Щ   Ю
      X   x   Ь   Я
      Y   y   Э   У
  :   Z   z   Ю   Ы
  ;   [   {   Я   Ы
  <   {   |   а    
  =   ]   }   б    
  >   ^   ~   в    
  ?   _   А   г    

Приложение Б Варианты заданий по теме «Обработка строки символов»

1) Задано слово произвольной длины. Определить, сколько раз в нем встречается буква «и».

2) Определить, содержит ли заданное слово букву «д».

3) Задана строка произвольной длины. Вывести данную строку в обратном порядке.

4) Задано слово произвольной длины. Поменять в нем местами первую и последнюю букву.

5) Дана строка. Определить, заканчивается ли она точкой.

6) Задано произвольное слово. Определить, состоит ли оно из четного количества букв.

7) Задано слово произвольной длины. Проверить, начинается и заканчивается ли данное слово на одну и ту же букву.

8) Задана строка. Удалить из нее два последних символа.

9) Задано произвольное слово. Определить, состоит ли оно из 7 букв.

10)Дана строка. Подсчитать количество содержащихся в строке запятых.

11)Задано произвольное слово. Определить, начинается ли оно со слога «ка».

12)Задано слово произвольной длины. Поменять в нем местами первую и третью букву.

13)Задано слово произвольной длины. Поменять в нем местами последнюю и предпоследнюю букву.

14)Задано произвольное слово. Определить, заканчивается ли оно на слог «ва».

15)Задано слово произвольной длины. Определить, содержится ли в нем три буквы «а»

16)Задано произвольное слово. Определить, состоит ли оно из 5 либо 6 букв.

17)Задано слово произвольной длины. Удалить из него последний символ.

18)Заменить в заданной строке все точки восклицательными знаками.

19)Найти количество пробелов в заданной строке произвольной длины.

20) Задано произвольное слово. Определить, заканчивается ли оно на букву «а» либо «о».


Приложение В Варианты заданий по теме «Обработка списка строк»

1) Задан список из 7 фамилий. Определить, имеется ли в списке фамилия, начинающаяся с буквы «А» и состоящая из 6 букв. Если да, то вывести ее на экран

2) Найти в списке из 6 фамилий все фамилии, имеющие окончание «ов».

3) Найти в списке из 8 фамилий все фамилии, начинающиеся со слога «Ра».

4) Задан список из 7 слов. Определить, сколько слов в списке состоят из 6,7 или 8 букв.

5) Задан список из 8 фамилий. Определить, сколько фамилий в списке начинаются с букв «А», «Б» или «В»

6) Найти в списке из 7 фамилий все фамилии, состоящие из 5 или 6 букв.

7) Задан список из 6 слов. Определить, сколько букв в самом длинном слове списка.

8) Найти в списке из 5 фамилий все фамилии, начинающиеся со слога «Ни».

9) Найти в списке из 7 фамилий все фамилии, состоящие из 4 и менее букв.

10)Задан список из 8 фамилий. Определить, сколько фамилий в списке имеют окончание «ова».

11)Задан список из 6 слов. Определить, сколько букв в самом длинном слове списка.

12)Задан список из 8 слов. Определить, сколько букв в самом коротком слове списка.

13)Найти самую длинную фамилию в списке из 7 фамилий. Если таких фамилий несколько, то распечатать их в одну строку.

14)Найти в списке из 6 фамилий все фамилии, начинающиеся с букв «В» или «Г».

15)Найти в списке из 7 фамилий все фамилии, имеющие окончание «ев».

16) Найти в списке из 5 фамилий все фамилии, начинающиеся со слога «Ма».

17)Задан список из 7 фамилий. Определить, сколько фамилий в списке состоят менее чем из 6 букв.

18)Задан список из 6 слов. Определить, сколько слов в списке состоят из 8 или 9 букв.

19)Задан список из 8 фамилий. Найти в списке все фамилии, состоящие из 6 или 7 букв.

20)Упорядочить заданный список из 7 слов в алфавитном порядке.


Приложение Г Варианты заданий по теме «Строковые переменные»

1) В заданном тексте удалить символ ‘,’ и подсчитать число удаленных символов. Предусмотреть возможность задания с клавиатуры удаляемого символа.

2) В заданном тексте заменить словосочетание «свернутые обороты» на словосочетание «разделенные обороты» и подсчитать число произведенных замен.

3) Из заданного предложения выбрать и вывести на экран только те символы, которые встречаются в нем только один раз (в том порядке, в каком они встречаются в тексте)

4) В заданном предложении найти самое длинное и самое короткое слова и подсчитать, на сколько больше символов в самом длинном слове.

5) Проверить, встечается ли в заданном предложении словосочетание «Остаток счета».

6) Проверить, встречается ли в заданном предложении словосочетание «Сальдо счета».

7) Для каждого слова заданного предложения указать долю согласных букв. Определить слово, в котором доля согласных максимальна.

8) Из заданного текста выбрать цифры и записать в массив N, а буквы- в массив B. Все остальные символы записать в массив S.

9) Удалить из заданного текста все пробелы, подсчитать длину получившегося текста и число удаленных пробелов.

10) Для каждого символа заданного текста указать, сколько раз он встречается в тексте. Сообщение об одном символе должно выводиться один раз.

11) Для заданного предложения указать слова, в котором доля гласных букв максимальна.

12) Отредактировать предложение, удаляя из него лишние пробелы, оставив только по одному пробелу между словами. Подсчитать число удаленных пробелов.

13) Проверить, имеется ли в заданном тексте баланс открывающихся и закрывающихся круглых скобок.

14) Дана последовательность из 10 слов. Вывести слова в обратном порядке.

15) Дана последовательность из 10 слов. Вывести все слова, входящие в эту последовательность по одному разу.

16) Дана последовательность из 8 слов. Вывести входящие в эту последовательность слова, расположив их по алфавиту.

17) Дана последовательность из 8 слов. Вывести эту последовательность, удалив из нее повторно входящие слова.

18)Дана последовательность из 10 слов. Вывести слова, в которых первая буква входит в них один раз.

19) Дана последовательность из 8 слов. Вывести слова, в которых нет повторяющихся букв.

20) Дана последовательность из 8 слов. Вывести слова, поменяв в них первые и последние буквы.

 







Дата добавления: 2015-08-31; просмотров: 1547. Нарушение авторских прав; Мы поможем в написании вашей работы!



Вычисление основной дактилоскопической формулы Вычислением основной дактоформулы обычно занимается следователь. Для этого все десять пальцев разбиваются на пять пар...

Расчетные и графические задания Равновесный объем - это объем, определяемый равенством спроса и предложения...

Кардиналистский и ординалистский подходы Кардиналистский (количественный подход) к анализу полезности основан на представлении о возможности измерения различных благ в условных единицах полезности...

Обзор компонентов Multisim Компоненты – это основа любой схемы, это все элементы, из которых она состоит. Multisim оперирует с двумя категориями...

Ситуация 26. ПРОВЕРЕНО МИНЗДРАВОМ   Станислав Свердлов закончил российско-американский факультет менеджмента Томского государственного университета...

Различия в философии античности, средневековья и Возрождения ♦Венцом античной философии было: Единое Благо, Мировой Ум, Мировая Душа, Космос...

Характерные черты немецкой классической философии 1. Особое понимание роли философии в истории человечества, в развитии мировой культуры. Классические немецкие философы полагали, что философия призвана быть критической совестью культуры, «душой» культуры. 2. Исследовались не только человеческая...

Случайной величины Плотностью распределения вероятностей непрерывной случайной величины Х называют функцию f(x) – первую производную от функции распределения F(x): Понятие плотность распределения вероятностей случайной величины Х для дискретной величины неприменима...

Схема рефлекторной дуги условного слюноотделительного рефлекса При неоднократном сочетании действия предупреждающего сигнала и безусловного пищевого раздражителя формируются...

Уравнение волны. Уравнение плоской гармонической волны. Волновое уравнение. Уравнение сферической волны Уравнением упругой волны называют функцию , которая определяет смещение любой частицы среды с координатами относительно своего положения равновесия в произвольный момент времени t...

Studopedia.info - Студопедия - 2014-2024 год . (0.012 сек.) русская версия | украинская версия