Главная » Просмотр файлов » Основы программирования

Основы программирования (947332), страница 22

Файл №947332 Основы программирования (Иванова Г.С. Основы программирования) 22 страницаОсновы программирования (947332) страница 222013-09-15СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

Текст из файла (страница 22)

Номер равен \1)else WriteLnCCmpoKa не найдена.');End.1264. Структурные типы данныхЗадания для самопроверкиЗадание 1. Дана строка текста длиной не более 80 символов, состоящая из слов,разделенных пробелом, в конце точка. Разработайте программу, которая определяетномера слов, в которых содержится более трех символов «А». Вывести исходнуюстроку и номера слов. Если слов с таким числом букв не окажется, вывести соответ­ствующее сообщение.Задание 2. Дана строка текста длиной не более 40 символов, состоящая из слов,разделенных пробелом, в конце точка. Разработайте программу, которая удаляет изтекста слово, содержащее максимальное количество букв «В».

Вывести исходную ипреобразованную строки. Если в тексте нет слов с буквой «В» - вывести соответст­вующее сообщение.Задание 3. Дан массив символьных строк, длиной не более 40 символов. Стро­ки состоят из слов, разделенных пробелом, в конце точка. Разработайте программу,которая формирует одномерный массив В, содержащий в качестве элементов коли­чество слов каждой строки, начинающихся на гласную букву. Если таких слов нет, всоответствующий элемент массива В занести 0.

Вывести исходный и сформирован­ный массивы.Задание 4. Дана строка, состоящая из слов, разделенных одним пробелом. Раз­работайте программу, которая разбивает исходную строку на подстроки, размер ко­торых не превышает заданного значения п. Перенос слов считать запрещенным.Задание 5. Разработайте программу, которая осуществляет «выравнивание поширине» подстрок, полученных в результате работы программы задания 4. Вырав­нивание должно выполняться таким образом, чтобы дополнительные пробелы меж­ду словами распределялись по подстроке равномерно.4.7. МножестваПонятие множество является одним из основных в современной матема­тике и трактуется как неупорядоченная совокупность неповторяюгцгася объ­ектов. В общем случае множество может не содержать ни одного элемента.Такое множество называется пустым.В Borland Pascal предусмотрен структурный тип, предназначенный дляпредставления множеств.

Данные множественного типа представляют со­бой совокупности однотипных элементов, каким-либо образом связанныхдруг с другом. Характер связей между элементами только подразумеваетсяпрограммистом и никак не контролируется.Множественный тип объявляется как совокупность элементов некоторо­го базового типа (рис. 4.31).Допускается объявлять только конечные множества, количество элемен­тов которых может меняться от О до 255.127Часть l.

Основы алгоритмизации и процедурное программированиеБазовым типом может бытьлюбой порядковый тип за ис­ключением типов integer иРис. 4.3L Синтаксическая диаграммаlongint, количество возмож<Объявление множественного типа>ных значений которых пре­вышает 255. В качестве базо­вого типа могут использоваться только диапазоны значений этих типов.Порядок расположения элементов во множестве никак не фиксируется.Это соответствует принятой в математике трактовке множества.Новый множественный тип обычно сначала объявляют, а затем уже ис­пользуют при описании переменных и констант, например:^set \I^ ^0 1 Базовыйтип IТуреDigits = set of L.

100; {тип «множество целых чисел от 1 до 100»}Setchar = set of char; (тип «множество символов таблицы ASCII»}letter=set of 'а'.. *z V {тип «множество прописных латинских букв»}logic = set of boolean; {тип «множество логических значений»}Varmychar:setchar; {переменная - множество символов таблицы ASCII}bool: logic;{переменная - множество логических значений}mydig: Digits; {переменная - множество целых чисел от 1 до 100}simst: letter; {переменная - множество прописных латинских букв}Множественный тип можно определить и непосредственно при объяв­лении переменных программы, например:Var number:set <9/"7..37; {переменная - множество целых чисел от 1 до 31}cif: set of 0,,9; {переменная - множество цифр}kods: set о/#0..#255;{переменная - множество кодов таблицы ASCII}workweek, week: set о/фу«; {переменная - множество дней недели}Значением переменной множественного типа является множество.

Кон­кретные значения переменных и констант множественного типа определяют­ся с помощью конструктора мноэюества, представляющего собой заклю­ченный в квадратные скобки список элементов множества, перечисленныхчерез запятую. Элементы множества могут задаваться константами, пере­менными и выражениями базового типа, также допускается указывать ин­тервалы значений элементов, входящих во множество, например:[] - пустое множество;[2,3,5,7,11] - множество, включающее несколько целых чисел;['а\ 'd\ f\ Ъ 7 - множество, включающее несколько латинских литер;[1,к] - множество, состоящее из целого числа 1 и текущего значенияпеременной к;[к.,2*к] - множество целых чисел от значения переменной к до ре­зультата выражения 2*к;1284.

Структурные типы данных[2„100] - множество целых чисел от 2 до 100;/"/, 2, i.. 7] - множество целых чисел, включающее числа 1,2,3,4,5,6,7;[red,yellow,green] - множество, состоящее из трех элементовнекоторого перечислимого типа.Инициализация множеств. Возможна инициализация переменныхмножественного типа с использованием типизированных констант.

Напри­мер:Туре setnum =set of byte;Const S:setnum=[LJOJ; {инициализированная переменная, ее исходноезначение в программе равно множеству, включающе­му целые числа от 1 до 10}Операции над множествами. Для работы со значениями множествен­ного типа предусмотрены специальные операции, в основном соответствую­щие операциям, определенным в теории множеств: объединение^ пересечениеи дополнение множеств. Это двуместные операции, операндами которых яв­ляются данные множественного типа - множества и выражения, принимаю­щие значение множественного типа. Оба операнда должны принадлежать од­ному и тому же множественному типу.

Обозначения этих операций в BorlandPascal и их геометрическая интерпретация представлены в табл. 4.1 приме­нительно к множествам А и В.Т а б л и ц а 4.1МатематическаязаписьAuB!АпБА\ВОперацияBorland PascalА^ВА *ВА'ВГеометрическаяинтерпретация(А(J В)Результат операцииОбьединение множеств А и В множество, состоящее из эле­ментов, принадлежащих мно­жествам А и В1€ЭПересечение множеств А и В ~множество, состоящее из эле­ментов, принадлежащих одно­временно и множеству А имножеству ВЙЭДополнение множеств А и В множество, состоящее из техэлементов множества А, кото­рые не принадлежат множествуВ129Часть I.

Основы алгоритмизации и процедурное программированиеНапример:[1,2] + [3,4] = [U,3,4];[1..10] * [3,8,9,15,23,45] = [3,8,9];[1..15] - [3,8,9,15,23,45] = [1,1,4..7,10.Л4];[red,blue,green,black] * [bIue,magenta,yeIlow] = [blue].Операции отношения. Наряду с рассмотренными выше операциями надзначениями множественного типа определены и операции отношения. Опе­рандами отношений в этом случае являются переменные или выражениямножественного типа. В табл.

4.2 показано соответствие между математиче­скими операциями сравнения множеств и операциями отношения, опреде­ленными в Borland Pascal.Операция проверки вхоэюдеиия элемента во мноэюество. Особое местозанимает операция проверки вхождения элемента во множество, обозначае­мая служебным словом in (рис. 4.32).

В отличие от операций отношения, воперации in первый операнд должен принадлежать базовому типу элементовданного множественного типа. Результатом операции in, как во всех опера­циях отношения, являетсялогическое значение.Ниже приведены при­ВыражениеМножествомеры применения операцийотношения и операции вхоРис. 4.32. Синтаксическая диаграммаждения к различным мно<Проверка вхождения элемента во множество> жествам.КЕНТ а б л и ц а 4.2МатемэтическаязаписьОперацияBorland PascalА= ВА =В130Результат операцииTRUEFALSEМножества А и В совпа­ Множества А и В не сов­падаютдаютАФЪА<>ВМножества А и В не сов­ Множества А и В совпа­падаютдаютАсВА<=ВВсе элементы множестваА принадлежат множест­ву ВНе все элементы множе­ства А принадлежат мно- jжеству ВАзВА>=ВВсе элементы множестваВ принадлежат множест­ву АНе все элементы множе­ства В принадлежатмножеству А4.

Структурные типы данных[*а% 'Ь'] = ['Ь% 'а'] - результат операции TRUE;[4, 5, 6] = [4..6] - результат операции TRUE;['c%'b'] = ['с% 'b% М'] - результат операции FALSE;[2,3, 5,7] <= I1-9] - результат операции TRUE;[3, 6..8] <= [2..7, 9] - результат операции TRUE;[3, 6..8] <= [2..7, 9] - результат операции FALSE;[5..8, 9.Л2] >= [6, 8,11] - результат операции TRUE;10 in [2, 4, 6, 8,10,12,14] - результат операции TRUE;к in [1, 3, 5, 7, 9] - результат операции TRUE при к=1,3,5и FALSE при к=2,4,6Следует помнить, что значения мноэюественного типа нельзя вводить ивыводить.

Однако можно ввести значения элементов множества и добавитьих к множеству, используя операцию объединения множеств, например:*^«~/У/ {исходное множество пусто}Read(n);while not EofdobeginS:=S+[n]; {объединяем исходное множество с элементом}Read(n); {вводим следующий элемент}end;...Для того чтобы вывести элементы множества, используют специальныйприем: в цикле проверяют вхождение во множество всех элементов базовоготипа и выводят те, которые входят во множество, например:fori:='a4o'z'doif i in S then Write(i:3);Рассмотрим несколько примеров решения задач с использованием мно­жеств.Пример 4.20. Разработать программу, которая определяет, является ливведенное слово идентификатором, т.е. начинается ли оно с буквы или знакаподчеркивания и не содержит ли специальных символов.Строим множество символов, которые допустимы в качестве первого:это строчные и прописные буквы латинского алфавита и символ подчеркива­ния:rA'..'Z','a'..'z','J] .Аналогично определяем множество допустимых символов, которые мо­гут встретиться, начиная со второго символа слова:['A'..'Z','a'..V,'J/0'..'9'].Программа должна вводить строку, проверять допустимость первогосимвола, а затем в цикле проверять допустимость остальных символов.131Часть 1.

Основы алгоритмизации и процедурное программированиеProgram ex;Var St: string;key: boolean;i: integer;BeginWriteLn(*Введите строку');ReadLn(st);ifstflj in f^A\. 'Z^'a\, 'z\^__7 then {проверка первого символа}begini:=2;key:=true;while (i<=length(st)) and key do {проверка остальных символов}ifst[i] in ГА\. 'Z\'a\. 'z\ 1 ^'0\. 'Г] then inc(i)else key: =false;if key then WriteLn('Строка \st,' - идентификатор. *)else WriteLnf'Строка \st,' содерэюит недопустимые символы.');endelseJVriteLnCCmpoKa \st,' начинается с недопустимого символа.');End.Пример 4.21. Разработать программу для определения количества раз­личных цифр в десятичной записи натурального числа.Для получения требуемого результата модуль введенного числа преоб­разуем в строку символов, а затем сформируем множество из этих символов.Теперь проверим, входят ли во множество цифры от О до 9, и те, которыевходят, выведем на экран.Program ex;Var n:longint;st:string;mnoj:setof'0\.'9';i: integer; j:char;BeginWriteLn('Введите число: ');ReadLn(n);Str(abs(n),st);mnoj:-[];{в исходном состоянии множество пусто}for i:=l to length (st) domnoj:=mnoj-^[st[i]]; {формируем множество}WriteLn('Запись числа \n,' содерэюит следующие цифры: *);forj:= 'О'to '9'do{выводим цифры, вошедшие во множество}if j in mnoj then Write(/+' ');End1324.

Характеристики

Тип файла
PDF-файл
Размер
13,06 Mb
Тип материала
Учебное заведение
Неизвестно

Список файлов книги

Свежие статьи
Популярно сейчас
А знаете ли Вы, что из года в год задания практически не меняются? Математика, преподаваемая в учебных заведениях, никак не менялась минимум 30 лет. Найдите нужный учебный материал на СтудИзбе!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
6294
Авторов
на СтудИзбе
313
Средний доход
с одного платного файла
Обучение Подробнее