Справочник от Автор24
Поделись лекцией за скидку на Автор24

Массивы строк

  • 👀 468 просмотров
  • 📌 384 загрузки
Выбери формат для чтения
Загружаем конспект в формате docx
Это займет всего пару минут! А пока ты можешь прочитать работу в формате Word 👇
Конспект лекции по дисциплине «Массивы строк» docx
Лекция 2. Массивы строк Рассмотрим программу, которая читает из файла список слов и затем выполним поиск в этом списке слов по заданному буквосочетанию. Лучшим вариантом является чтение файла строк в массив. Для визуального просмотра списка слов их можно вывести в компонент Memo. Все остальные операции со строками, которые требуются по какому-либо алгоритму, нужно выполнять в массиве. Работа с файлами при создании любых проектов является основной задачей, поэтому рассмотрим этот вариант работы. 1. Сформируем текстовый файл flow.txt: astra lilia pion tulpan romashka roza siren 2. Описание файловой переменной и массива строк Var ft:textfile; - текстовый файл на диске; Ms:array[1..100] of string; - массив строк. 3. Назначение файловой переменной имени файла на диске: Begin Assignfile(ft,’flow.txt’); - файл цветов 4. Открытие файла на чтение: Reset(ft); 5. Чтение файла и вывод строк в многострочный редактор Memo. K:=0; - количество строк; s- строка While not eof(ft) do Begin Readln(ft,s); - чтение строки в s Inc(k); - увеличение счетчика на 1 Ms[k]:=s; - запись в массив Form1.Memo1.Lines.Add(s); - запись в Memo End; Closefile(ft) - закрытие файла В конце цикла в k – количество строк. Можно записать: Kols:=k; Далее мы в однострочном редакторе Edit вводили букву или буквосочетание и выводили найденные слова в Memo2. Допустим мы создали событие при нажатии на кнопку «Найти». Напишем команды поиска и вывода найденных слов в Memo2. St:=Form1.Edit1.Text; - выбираем буквосочетание из Edit Form1.Memo2.Clear; - очищаем Memo2 For i:=1 to kols do Begin n:=pos(st,ms[i]); - n<>0, если буквосочетание найдено, n равно номеру Позиции If (n<>0) then Begin Form1.Memo2.Lines.Add(ms[i]); - заносим слово в Memo2 End; End; 2. Полная программа представлена ниже. unit ustroka; {$mode objfpc}{$H+} interface uses Classes, SysUtils, FileUtil, Forms, Controls, Graphics, Dialogs, StdCtrls; type { TForm1 } TForm1 = class(TForm) Button1: TButton; Button2: TButton; Edit1: TEdit; Memo1: TMemo; Memo2: TMemo; procedure Button1Click(Sender: TObject); procedure Button2Click(Sender: TObject); procedure FormCreate(Sender: TObject); private { private declarations } public { public declarations } end; var Form1: TForm1; ft:textfile; Ms:array[1..100] of string; s:string; kols:integer; implementation {$R *.lfm} { TForm1 } procedure TForm1.FormCreate(Sender: TObject); begin form1.Memo1.Clear; form1.Memo2.Clear; form1.Edit1.Clear; end; procedure TForm1.Button1Click(Sender: TObject); var k:integer; begin Assignfile(ft,'flow.txt'); // файл цветов мы создали Reset(ft); // Открытие файла на чтение: K:=0; // количество строк; s- строка While not eof(ft) do // чтение, пока не конец файла Begin Readln(ft,s); // - чтение строки в s // If eof(ft) then break; // - прерывание цикла по концу файла Inc(k); // - увеличение счетчика на 1 Ms[k]:=s; // - запись в массив Form1.Memo1.Lines.Add(s); // - запись в Memo End; closefile(ft); // - закрытие файла Kols:=k; end; procedure TForm1.Button2Click(Sender: TObject); var st:string; i,n:integer; begin St:=Form1.Edit1.Text; // - выбираем буквосочетание из Edit Form1.Memo2.Clear; // - очищаем Memo2 For i:=1 to kols do Begin n:=pos(st,ms[i]); // - если n<>0, то n равно номеру позиции буквосочетания If (n<>0) then Begin Form1.Memo2.Lines.Add(ms[i]); // - заносим слово в Memo2 End; End; end; end. 3. Результат работы 4. Зачетное задание по теме. Разработать фрагмент урока и программу. Необходимо при чтении файла в Memo1 после всех слов вывести строку с сообщением о количестве прочитанных слов, например: «Прочитано 10 слов». При поиске в Memo2 тоже вывести сообщение: «Найдено 5 слов» Для вывода этих сообщений необходимо воспользоваться командами перевода целых чисел в символьный вид: Sk:=inttostr(k); - sk – строка, k- целое число. Кроме того нужно для получения результата сложить отдельные части результирующей строки, например: s:=s+s1+s2; Программу можно написать в среде визуального проектирования Lazarus и на языке Паскаль.
«Массивы строк» 👇
Готовые курсовые работы и рефераты
Купить от 250 ₽
Решение задач от ИИ за 2 минуты
Решить задачу
Помощь с рефератом от нейросети
Написать ИИ

Тебе могут подойти лекции

Смотреть все 462 лекции
Все самое важное и интересное в Telegram

Все сервисы Справочника в твоем телефоне! Просто напиши Боту, что ты ищешь и он быстро найдет нужную статью, лекцию или пособие для тебя!

Перейти в Telegram Bot