Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

lab5_v17 / lab5_v17

.docx
Скачиваний:
12
Добавлен:
16.03.2016
Размер:
49.97 Кб
Скачать

Федеральное агентство по образованию

ТОМСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ

СИСТЕМ УПРАВЛЕНИЯ И РАДИОЭЛЕКТРОНИКИ (ТУСУР)

Кафедра автоматизированных систем управления (АСУ)

ОТЧЕТ

по лабораторной работе № 5

по дисциплине «Программирование на языке высокого уровня»

Выполнил: студент гр. З-431-а

Мамаев Александр Николаевич

Принял: преподаватель

Сафьянова Елена Николаевна

«20» января 2016 г.

2016 г.

  1. Тема работы: строковый тип данных.

  2. Цель работы – приобретение навыков работы со строками.

  3. Задание (вариант №17):

Дано натуральное число n и последовательность символов S1, …, Sn (строка). Найти длину самого короткого слова в строке (слова – группы символов, разделенные одним или несколькими пробелами).

  1. Описание алгоритма решения задачи:

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

В данной задаче, получив пользовательский ввод данных с клавиатуры (исходную строку), определяется её длина n. Затем используя цикл for производиться полный «проход» по строке от первого символа до n. С целью определения самого короткого слова в строке вводится две переменных: tmpcnt и cnt, которые служат для хранения длины текущего слова и самого короткого соответственно.

При каждом не пробельном символе переменная текущего слова tmpcnt увеличивается. В случае появления пробела, если было завершено хоть одно слово(tmpcnt>0) и оно самое первое слово в строке (cnt=0) или является более коротким, чем предыдущие tmpcnt<=tmp, то переменной cnt присваивается значение текущего слова tmpcnt. Для перехода к следующему слову переменная текущего слова tmpcnt обнуляется, затем происходит переход к следующему символу.

  1. Листинг программы

  1. program lab5_v17;

  2. uses Crt;

  3. var

  4. s:string;

  5. tmpcnt,cnt,i,n:integer;

  6. begin

  7. ClrScr;

  8. write('Введите строку: ');

  9. readln(s);

  10. n:=Length(s);

  11.  

  12. tmpcnt:=0; // Длина текущего слова

  13. cnt:=0; // Длина самого короткого слова

  14. for i:=1 to n do begin

  15.  

  16. if(s[i]=' ') then begin

  17. if(((tmpcnt<=cnt) or (cnt=0)) and (tmpcnt>0)) then cnt:=tmpcnt;

  18. tmpcnt:=0;

  19. continue;

  20. end;

  21.  

  22. Inc(tmpcnt);

  23. end;

  24.  

  25. writeln('Длина самого короткого слова: ',cnt);

  26.  

  27. readln;

  28. end.

  1. Результаты тестирования программы

При одиночных пробелах

При повторяющихся пробелах

  1. Выводы

Необходимые навыки работы со строками приобретены.

  1. Список используемых источников

• Методические указания к лабораторным работам для студентов специальности 230105 «Программное обеспечение вычислительной техники и автоматизированных систем», С.М. Алферов, Е.Н. Сафьянова

• http://highlight.hohli.com/

Соседние файлы в папке lab5_v17