merged document (820599), страница 2

Файл №820599 merged document (Методички Терентьев Ю.И.) 2 страницаmerged document (820599) страница 22020-12-15СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

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

Кроме того строки могут объявляться как константы,обыкновенные и типизированные.ConstSc=’неизменяемая строка’;Sc1:string=’изменяемая строка’;К любому символу строки можно получить доступ так же, как и к любому элементуодномерного массива , т.е.If st[5]=’f’ Then . . .;Для определения длины строки (количества символов в строке) используют специальнуюфункцию length(st) типа Integer.Операции со строками. Для данных строкового типа определена операция конкатенации(сцепления)St:=’строка’;St1:=’символов’;St:=st+’ ‘+st1;В результате этой операции значением переменной St будет ‘строка символов’.Если же переменная St была описана как string[8], то в St будет содержаться‘строка с’.

При этом аварийного завершения программы не произойдет. Длина строкиизменяется автоматически, в данном случае увеличивается, не превышая предельной,указанной при описании.Таким образом, в отличие от обычных символьных массивов строки могут динамическиизменять свою текущую длину.Переменные строкового типа могут сцепляться с символьными переменными, более того– им можно присваивать значения символьных переменных.Var st:string;Ch:char;BeginSt:=’строка’; ch:=’?’;St:= st+ch;St:=ch;Кроме операции сцепления для строк определены операции отношения (=,<>,<,>,<=,>=).За отношение между двумя строками принимается отношение между первыми двумянесовпадающими символами.St:=’строка символов’;St1:=’строки’;St1 будет больше St.Кроме функции length()Паскаль содержит еще много полезных процедур и функцийдля работы со строками:1.

Concat(s1[,s2,s3,…,sn])-функция типа string, возвращает строку,представляющую собой сцепление строк-параметров;2. Copy(s,index,n)- функция типа string, копирует n символов, начинаясимвола под номером index;3. Delete(s,index,n)- процедура удаляет из строки n символов, начинаясимвола под номером index;4. Insert(st,s,index)- процедура вставляет подстроку st в строку s, начинаяс позиции под номером index;5. Pos(st,s)-функция типа Integer отыскивает в строке s первое вхождениеподстроки st и возвращает номер позиции, с которой она начинается. Еслиподстрока не найдена, то возвращается 0.6.

Str(x:m[:n],s)-процедура, преобразующая выражение x числового типа встроку s; m – число знаков в числе (длина строки); n - количество цифр в дробнойчасти (если х – вещественного типа);7. Val(s,x,code)- процедура, преобразующая строку sс символьной записьючисла в целое или вещественное число x; code - код ошибки, представляющийсобой номер позиции, в которой записан неверный символ;Пример.program project62;{Строка произвольной длины состоит из слов, отделенных друг отдруга пробелом.Записать эти слова в массив строк так, чтобы каждое словоявлялось элементоммассива. Упорядочить элементы полученного массива по алфавиту.}TypeAr = Array [1..20] of string;Procedure StrToAr ( s : String; var a:Ar;var n:Integer);Varrab : string;i : Integer;BeginIf s[Length(s)] <> ' ' Then s := s + ' ';n := 0;rab := '';For i := 1 To Length(s) DoIf s[i] <> ' ' Thenrab := rab + s[i]Elsebeginn := n + 1;a[n] := rab;rab := '';end;end;Procedure Output(const a:Ar;n:Integer);Vari : Integer;beginFor i:=1 to n doWriteln(a[i]);end;Procedure Sortstring (var a:Ar;n:Integer);var i,j : Integer;rab : string;beginFor i := 1 To n - 1 DoFor j := i+1 To n DoIf a[j] < a[i] Thenbeginrab := a[j];a[j] := a[i];a[i] := rab;end;end;Vars : String; a:Ar; n:Integer;beginWriteln ('Введите строку');Readln (s);StrToAr(s,a,n);Writeln('Полученный массив');Output(a,n);Sortstring (a,n);Writeln('Отсортированный массив');Output(a,n);Readln;end.Множественный тип.Под множеством понимают неупорядоченную совокупность неповторяющихся значенийодного типа.

Количество элементов множества не может превышать 256 и их размер неможет превышать байта. Определение множественного типа выполняется следующимобразомType <имя>=Set of <базовый тип>;Учитывая сказанное, базовыми типами для множеств могут быть Byte,ShortInt,Charи типы диапазоны на их основе, а также данные перечисляемого типа. НапримерSetchar=Set of char;SetSymb=Set of ‘a’..’z’;Setnumb=Set of 1..200;Color=(red,yellow,blue,green);Setcol=Set of Color;Var sc:SetChar;Ss:Setsymb;Sn,s1,s2,s3:Setnumb;Присваивание значений переменным множественного типа осуществляется с помощьюспециальной конструкции, называемой конструктором множестваSc:=[‘a’..’z’,’0’..’9’];Ss:=[‘A’..’Z’];Sn:=[1,3,5,7,10..100];Следует выделить пустое множество [], совместимое с любым множественным типом.Можно объявлять константы множественного типаConstSetc=[2,4,6,8];Setv:setnumb=[2,4,6,8];Процедурой Writeln() множества не обрабатываются, т.е.

на экран монитора невыводятся.Операции над множествами. Выполняются над однотипными множествами.S1:=[1..10]; s2:=[5..15];1.Объединение множеств. Объединением двух множеств является множество, элементыкоторого принадлежат к первому и ко второму множеству.S3:=s1+s2; -> [1..15]2.Дополнение. Дополнением двух множеств является множество, элементы которогопринадлежат к первому и не принадлежат ко второму множеству.S3:=s1-s2; -> [1..4]S3:=s2-s1; -> [11..15]3.Пересечение. Пересечением двух множеств является множество, элементы которогопринадлежат и к первому и ко второму множеству.S3:=s1*s2; -> [5..10]Пересечением двух непересекающихся множеств является пустое множество.4.Операции «отношения»Проверка на подмножествоS3<=s1 вернет True, если элементы S3 принадлежат s1 и False в противном случаеПроверка на надмножествоS1>=s3 вернет True, если элементы S3 принадлежат s1 и False в противном случаеПроверка на равенство и неравенствоS1=s3 S1<>s3Проверка на принадлежность к множествуk in s3 вернет True, если элементы k принадлежит s3 и False в противном случаеnot(k in s3)Примеры.program project61;{Определить букву латинского алфавита, котораячаще всего встречается в строке произвольной длины.}Procedure SymbMax(s:String; var chmax:Char;var kmax:Integer);Var{Если массив является вспомогательным и будет использоватьсятолько в процедуре, то он может описываться без предварительногоопределения типа}count : Array ['a'..'z'] of Byte;ch : Char;i : Integer;BeginFor ch := 'a' To 'z' Docount[ch] := 0;For i := 1 To Length (s) DoIf s[i] in ['a'..'z'] Thencount[s[i]] := count[s[i]] + 1;kmax := count['a']; chmax := 'a';For ch := 'b' To 'z' DoIf count[ch] > kmax Thenbeginkmax := count[ch];chmax := ch;end;End;Vars:String; ch:Char;kmax:Integer;beginWriteln ('Введите строку ');Readln (s);SymbMax(s,ch,kmax);Writeln ('Буква ',ch,' встречается ',kmax,' раз');readln;end.program project63;{Преобразовать строку произвольной длины, удалив в ней всеповторениястрочных букв латинского алфавита (с использованием множеств).}Procedure DelLat( Var s : String);Varsetlat : Set of 'a'..'z';ch,chmax : Char;i,kmax : Byte;Beginsetlat := [];i := 1;While i <= Length (s) DoIf (s[i] in setlat) ThenDelete (s,i,1)ElsebeginIf (s[i] in ['a'..'z']) Thensetlat := setlat + [s[i]];i := i + 1;end;End;var s : String;beginWriteln ('Введите строку ');Readln (s);DelLat( s);Writeln ('Преобразованная строка');Writeln (s);Readln;end.Задание:1.

Определить количество гласных и количество согласных латинских букв в строкепроизвольной длины. Преобразовать ее, удалив все имеющиеся в ней знакипрепинания (с использованием множеств).2. В виде массива строк задан текст, состоящий из нескольких предложений.Предложения начинаются с заглавной буквы и заканчиваются точкой. Записать вмассив первые слова предложений. Учесть, что в тексте могут встречаться именасобственные.Текстовые файлыТекстовые файлы представляют собой совокупность строк переменной длины. В концекаждой строки проставляется признак конца строки.

Доступ к каждой строке строгопоследовательный, т.е. чтобы получить доступ к k-той строке, необходимо вначалесчитать предыдущие (k-1) строки. В конце файла имеется уже известный нам признакконца файла. Еще одним отличием от типизированных файлов является невозможностьдля одного открытого файла производить одновременно операции чтения и записи.Последовательность предварительных действий, которые должны быть выполнены дляработы с текстовым файлом, аналогична той, что производилась для типизированныхфайлов, а именно:1.

описываем файловую переменную Var f: Textfile;2. связываем файловую переменную с конкретным файлом вызовом процедурыAssignFile(<ф.п.>,<имя файла>);3. указываем направление потока информации, т.е. открываем файл для считывания илидля записи данных. Для этого используются следующие процедуры:Reset(<ф.п.>);- если планируется считать данные из файла;Rewrite(<ф.п.>); или Append(<ф.п.>); - для последующей записи данных вфайл. Если после выполнения процедуры Rewrite(<ф.п.>) файловый указательустановлен в начало файла (в существующем файле все данные удаляются), то послевыполнения Append(<ф.п.>) указатель находится в конце файла, т.е.

имеющаяся в неминформация сохраняется и можно дополнительно записать данные. После окончанияработы файлы закрываются с использование процедуры CloseFile(<ф.п.>);Для считывания данных из текстового файла используются процедурыRead(<ф.п.>,<список ввода>) и Readln(<ф.п.>,<список ввода>), а длязаписи Write(<ф.п.>,<список вывода>) и Writeln(<ф.п.>,<списоквывода>).При выполнении операции чтения из файла могут использоваться функции логическоготипа EOF(<ф.п.>)и EOLN(<ф.п.>), а также аналогичные им SeekEOF(<ф.п.>),SeekEOLN(<ф.п.>).

Считается, что последние функции работают более корректно,например, если в конце строки или файла имеются пробелы или символы табуляции, тоони их не обрабатывают, выходя на соответствующие признаки.Кроме названных процедур и функций при решении задач с использованием текстовыхфайлов могут быть использованы и процедуры, предназначенные для работы с файламилюбого вида, а именно: Erase(<ф.п.>)- удаление предварительно закрытого файла.Rename(<ф.п.>,<новоеимяфайла>)переименованиефайла.FileExists(<имя файла>):Boolean - функция логического типа возвращает вкачестве результата True, если файл с указанным именем существует (программа нашлаего), и False в противном случае.Теперь рассмотрим считывание данных из текстового файла.

Немного истории.Изначально в Паскале с текстовыми файлами не работали, в языке определены былитолько типизированные. Точнее имелись два стандартных текстовых файла. С одним быласвязана файловая переменная Input. а с другим – Output. Первым файлом считаласьклавиатура, а вторым – экран или печатающее устройство.

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

Тип файла
PDF-файл
Размер
229,34 Kb
Тип материала
Высшее учебное заведение

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

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