Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Примеры использования символов, строк и множеств




Задача 1. Оставить в строке только первое вхождение каждого символа, взаимный порядок оставленных символов сохранить.

program z1;var s: set of char;inp, res: string;i: byte; begin s:=[]; res:= ''; for i:= 1 to length(inp) do if not(inp[i] in s) then begin res:= res+inp[i]; s:= s+[inp[i]]; end;end.

Задача 2. 6) Оставить в строке только последнее вхождение каждого символа, взаимный порядок оставленных символов сохранить.

program z2;var inp, res: string; i: byte; begin res:= ''; for i:= 1 to length(inp) do begin k:= pos(inp[i],res); if k<>0 then delete(res,k,1); res:= res+inp[i]; end;end.

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

program z3;var bset: array[0..12499] of byte; {множество, битовый массив} ed: array[1..8] of byte; el,k: longint; kmp,bin: integer;begin ed[1]:= 1; {генерация массива битовых единиц} for k:= 2 to 8 do ed[k]:= ed[k-1] shl 1;{-------------------------------------------------------} k:=0; randomize; {процедура активизации генератора случайных чисел} while k<100000 dobegin el:= 1+random(99999); {случайное число из диапазона 0..99999} kmp:= el div 8; bit:= el mod 8; if bit=0 then bit:= 8; if bset[kmp]and ed[bit]=0 {проверка повторов} then begin inc(k); writeln(el); bset[kmp]:= bset[kmp]or ed[bit] end;endend.

1) Как описывать символьные переменные, мы рассказали в лекции 2.
2) Напомним, что жирная квадратная скобка является стандартным элементом синтаксиса, а обычная - указанием на необязательность заключенных в нее элементов.
3) На самом деле "строка длиной в один символ" имеет две компоненты: s[0] (длина строки = 1) и s[1] (собственно символ)
4) См. лекцию 2.
5) Если множества s1 и s2 не пересекаются, то результат s будет совпадать с s1.
6) Более простой вариант решения - повторить решение задачи 1 с заменой цикла for-to на for-downto. Приведенный же вариант решения можно использовать для обработки не только строк, но и файлов.

 

6. Лекция: Ввод и вывод информации: текстовые файлы:
Ввод информации из текстового файла. Вывод информации в текстовый файл. Оперирование текстовыми файлами.

Ввод и вывод: файлы

В первой лекции мы уже рассматривали ввод информации с клавиатуры и вывод ее на экран1). Однако процесс ввода с консоли весьма трудоемок, а результат вывода на консоль - недолговечен. К счастью, существует более удобный способ записывать, хранить, пересылать и по необходимости считывать информацию из постоянной памяти компьютера. Для этого применяются файлы.




Поделиться с друзьями:


Дата добавления: 2014-01-03; Просмотров: 300; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.01 сек.