Учебный курс Программирование на Delphi. Модуль 8: различия между версиями
Материал из Wiki Mininuniver
Перейти к навигацииПерейти к поиску(не показано 9 промежуточных версий 3 участников) | |||
Строка 1: | Строка 1: | ||
− | <center>''' | + | <center>'''Работа со строками'''</center> |
== Пример 1.== | == Пример 1.== | ||
Строка 65: | Строка 65: | ||
*'''Форма с результатом работы программы:''' | *'''Форма с результатом работы программы:''' | ||
[[Изображение:-7-1.JPG]] | [[Изображение:-7-1.JPG]] | ||
+ | == Пример 2.== | ||
+ | *'''Условие задачи:''' | ||
+ | В данном массиве из слов подсчитать количество слов, начинающихся и заканчивающихся гласной буквой. | ||
+ | |||
+ | '''Использованные компоненты:''' | ||
+ | |||
+ | Label1 - используется для текстовых комментариев; | ||
+ | |||
+ | Label2 - используется для текстовых комментариев; | ||
+ | |||
+ | edit1 - используется для ввода количества слов; | ||
+ | |||
+ | edit2 - используется для ввода числового массива; | ||
+ | |||
+ | BitBtn1 - запуск программы; | ||
+ | |||
+ | BitBtn2 - выход из программы; | ||
+ | |||
+ | *'''Программный код:''' | ||
+ | |||
+ | unit Unit1; | ||
+ | interface | ||
+ | uses | ||
+ | Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, | ||
+ | Dialogs, StdCtrls, Buttons; | ||
+ | type | ||
+ | TForm1 = class(TForm) | ||
+ | Memo1: TMemo; | ||
+ | Label1: TLabel; | ||
+ | Label2: TLabel; | ||
+ | BitBtn1: TBitBtn; | ||
+ | BitBtn2: TBitBtn; | ||
+ | Label3: TLabel; | ||
+ | Edit1: TEdit; | ||
+ | procedure BitBtn2Click(Sender: TObject); | ||
+ | procedure BitBtn1Click(Sender: TObject); | ||
+ | private | ||
+ | { Private declarations } | ||
+ | public | ||
+ | { Public declarations } | ||
+ | end; | ||
+ | var | ||
+ | Form1: TForm1; | ||
+ | implementation | ||
+ | {$R *.dfm} | ||
+ | procedure TForm1.BitBtn2Click(Sender: TObject); | ||
+ | begin | ||
+ | Close; | ||
+ | end; | ||
+ | const maxn=100; | ||
+ | var s:array[1..maxn] of string; | ||
+ | l,n,i,k:integer; | ||
+ | procedure TForm1.BitBtn1Click(Sender: TObject); | ||
+ | begin | ||
+ | n:=strtoint(edit1.Text); | ||
+ | for i:=1 to n do | ||
+ | s[i]:=memo1.Lines[i-1]; | ||
+ | k:=0; | ||
+ | for i:=1 to n do | ||
+ | begin | ||
+ | l:=length(s[i]); | ||
+ | if (pos(s[i][1], 'аоиуеыэюяАОИУЕЫЭЮЯ') > 0) | ||
+ | and (pos(s[i][1], 'аоиуеыэюяАОИУЕЫЭЮЯ') > 0) | ||
+ | then k:= k+1 | ||
+ | end; | ||
+ | label2.Caption:=inttostr(k); | ||
+ | end; | ||
+ | end. | ||
+ | *'''Форма с результатом работы программы:''' | ||
+ | [[Изображение:7-2.JPG]] | ||
==Задание== | ==Задание== | ||
− | + | Таблица 11 | |
{| border=4 | {| border=4 | ||
!Номер варианта||Условие|| | !Номер варианта||Условие|| | ||
Строка 114: | Строка 184: | ||
|- | |- | ||
|} | |} | ||
− | + | Таблица 12 | |
{| border=1 | {| border=1 | ||
|- | |- |
Текущая версия на 11:41, 20 мая 2008
Содержание
Пример 1.
- Условие задачи:
Удалить из строки все "лишние" пробелы.
- Использованные компоненты:
Label1 - используется для текстовых комментариев;
edit1 - используется для ввода строки;
edit2 - используется для вывода строки;
BitBtn1 - запуск программы;
BitBtn2 - выход из программы;
- Программный код:
unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, Buttons; type TForm1 = class(TForm) Label1: TLabel; Label3: TLabel; BitBtn1: TBitBtn; BitBtn2: TBitBtn; Edit1: TEdit; Edit2: TEdit; procedure BitBtn2Click(Sender: TObject); procedure BitBtn1Click(Sender: TObject); private { Private declarations } public { Public declarations } end; var Form1: TForm1; implementation {$R *.dfm} var s:string; l:integer; procedure TForm1.BitBtn2Click(Sender: TObject); begin close; end; procedure TForm1.BitBtn1Click(Sender: TObject); begin s:=edit1.Text; l:=pos(' ',s); if l=0 then edit2.Text:='Удаления не было' else begin while l>0 do //пока в строке есть парные пробелы begin delete(s,l,1); l:=pos(' ',s); end; edit2.Text:=(s); end; end; end.
- Форма с результатом работы программы:
Пример 2.
- Условие задачи:
В данном массиве из слов подсчитать количество слов, начинающихся и заканчивающихся гласной буквой.
Использованные компоненты:
Label1 - используется для текстовых комментариев;
Label2 - используется для текстовых комментариев;
edit1 - используется для ввода количества слов;
edit2 - используется для ввода числового массива;
BitBtn1 - запуск программы;
BitBtn2 - выход из программы;
- Программный код:
unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, Buttons; type TForm1 = class(TForm) Memo1: TMemo; Label1: TLabel; Label2: TLabel; BitBtn1: TBitBtn; BitBtn2: TBitBtn; Label3: TLabel; Edit1: TEdit; procedure BitBtn2Click(Sender: TObject); procedure BitBtn1Click(Sender: TObject); private { Private declarations } public { Public declarations } end; var Form1: TForm1; implementation {$R *.dfm} procedure TForm1.BitBtn2Click(Sender: TObject); begin Close; end; const maxn=100; var s:array[1..maxn] of string; l,n,i,k:integer; procedure TForm1.BitBtn1Click(Sender: TObject); begin n:=strtoint(edit1.Text); for i:=1 to n do s[i]:=memo1.Lines[i-1]; k:=0; for i:=1 to n do begin l:=length(s[i]); if (pos(s[i][1], 'аоиуеыэюяАОИУЕЫЭЮЯ') > 0) and (pos(s[i][1], 'аоиуеыэюяАОИУЕЫЭЮЯ') > 0) then k:= k+1 end; label2.Caption:=inttostr(k); end; end.
- Форма с результатом работы программы:
Задание
Таблица 11
Номер варианта | Условие | |
---|---|---|
Проверить, является ли строка палиндромом (т.е. читается ли она одинакого слева на право и справа налево). Пробелы игнорируются. Например, шалаш, а роза упала на лапу азора. | ||
Проверить, верно ли что в строке чередуются гласные и согласные буквы.Пробелы игнорируются. | ||
Проверить, имеется ли в заданном тексте баланс открывающихся и закрывающихся скобок. | ||
В заданном предложении указать слово, в котором доля гласных а,е,и максимальна. | ||
В заданном предложении найти самое короткое и самое длинное слово. | ||
Для каждого символа заданного текста указать, сколько раз он встречается в тексте. Сообщение об одном символе должно печататься не более одного раза. | ||
В заданном тексте удалить символ "," и подсчитать число удаленных символов. | ||
В заданном тексте подсчитать количество гласных букв. | ||
В заданном тексте заменить каждый символ "а", стоящий на четном месте, на символ "о". | ||
Подсчитать количество слов в предложении. | ||
Определить, сколько раз в строке встречается заданное слово. | ||
Для каждого слова заданного предложения указать долю согласных. | ||
Определить слово в заданном предложении, в котором доля гласных максимальна. | ||
Удалить из текста пробелы и подсчитать число удаленных символов. |
Таблица 12
Номер варианта | Условие |
---|---|
Дан массив из слов А(N). Найти все слова, заканчивающиеся гласной буквой. | |
Дан массив из слов Х(m). Найти все слова четной длины. | |
Дан массив из слов У(к). Найти все слова с нечетным количеством буквы "о". | |
Дан массив из слов A(m). Найти все слова с длиной, не превышающей заданной. | |
Дан массив из слов X(n). Найти все слова, содержащие хотя бы одно вхождение заданной подстроки. | |
Дан массив из слов A(k). Найти все слова, начинающиеся и заканчивающиеся одной и той же буквой. | |
Дан массив из слов A(k). Найти все слова с четным количеством буквы "е". | |
Дан массив из слов У(L). Найти все слова, содержащие шипящие. | |
Дан массив из слов A(n). Найти все слова, начинающиеся с заданной буквы. | |
Дан массив из слов У(m). Найти все слова, у которых есть буквы а, о и е. | |
Дан массив из слов Т(к). Найти все слова, начинающиеся или заканчивающиеся буквой "з". | |
Дан массив из слов Т(к). Найти все слова, содержащие заданное количество букв. | |
Дан массив из слов Z(m). Найти все слова, в которых есть две подряд идущие одинаковые буквы. | |
Дан массив из слов X(k). Найти все слова, длина которых кратна трем. |
Литература
- Архангельский. Программирование на Delphi 6. – М: БИНОМ, 2002
- Бобровский С. Delphi 7. Учебный курс. – СПб: Питер, 2003
- Культин Н. Основы программирования в Delphi 7. СПб: БХВ-Петербург, 2005.