Задача 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.1) Оставить в строке только последнее вхождение каждого символа, взаимный порядок оставленных символов сохранить.
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.
6. Лекция: Ввод и вывод информации: текстовые файлы
Ввод и вывод: файлы
В первой лекции мы уже рассматривали ввод информации с клавиатуры и вывод ее на экран1). Однако процесс ввода с консоли весьма трудоемок, а результат вывода на консоль - недолговечен. К счастью, существует более удобный способ записывать, хранить, пересылать и по необходимости считывать информацию из постоянной памяти компьютера. Для этого применяются файлы.
В последнее время студенты все реже задают этот вопрос, однако на него все-таки стоит дать короткий ответ.
Файл - это самостоятельная последовательность символов, записанная в постоянную память компьютера.
В английском языке слово "file" имеет вполне понятный смысл: "вереница", что очень хорошо отражает внутреннюю структуру любого файла. Файл - это именно вереница символов, причем связанных в определенной последовательности: символы файла не могут по своему желанию перепрыгивать с одного места на другое.
"Самостоятельность" файлов заключается в том, что они не зависят от работы какой-либо программы. И даже если выключить компьютер, файлы будут продолжать свое существование на винчестере или на дискете.
Файлы могут хранить в себе все, что поддается кодированию:
исходные тексты программ или входные данные (тесты);
машинные коды выполняемых программ (игры, вирусы, обучающие и сервисные программы, др.);
информацию о текущем состоянии какого-либо процесса;
различные документы, в том числе и Интернет-страницы;