Учебный курс Программирование на Delphi. Модуль 8: различия между версиями
Материал из Wiki Mininuniver
Перейти к навигацииПерейти к поиску| Строка 67: | Строка 67: | ||
== Пример 2.== | == Пример 2.== | ||
*'''Условие задачи:''' | *'''Условие задачи:''' | ||
| − | + | В данном массиве из слов подсчитать количество слов, начинающихся и заканчивающихся гласной буквой.* | |
| − | + | ||
| + | '''Использованные компоненты:''' | ||
Label1 - используется для текстовых комментариев; | Label1 - используется для текстовых комментариев; | ||
| Строка 74: | Строка 75: | ||
Label2 - используется для текстовых комментариев; | Label2 - используется для текстовых комментариев; | ||
| − | edit1 - используется для ввода | + | edit1 - используется для ввода количества слов; |
| + | |||
| + | edit2 - используется для ввода числового массива; | ||
BitBtn1 - запуск программы; | BitBtn1 - запуск программы; | ||
| Строка 86: | Строка 89: | ||
uses | uses | ||
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, | Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, | ||
| − | Dialogs | + | Dialogs, StdCtrls, Buttons; |
type | type | ||
TForm1 = class(TForm) | TForm1 = class(TForm) | ||
| − | + | Memo1: TMemo; | |
Label1: TLabel; | Label1: TLabel; | ||
Label2: TLabel; | Label2: TLabel; | ||
| − | |||
| − | |||
BitBtn1: TBitBtn; | BitBtn1: TBitBtn; | ||
BitBtn2: TBitBtn; | BitBtn2: TBitBtn; | ||
| − | + | Label3: TLabel; | |
| + | Edit1: TEdit; | ||
| + | procedure BitBtn2Click(Sender: TObject); | ||
procedure BitBtn1Click(Sender: TObject); | procedure BitBtn1Click(Sender: TObject); | ||
| − | |||
private | private | ||
{ Private declarations } | { Private declarations } | ||
| Строка 108: | Строка 110: | ||
implementation | implementation | ||
{$R *.dfm} | {$R *.dfm} | ||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
procedure TForm1.BitBtn2Click(Sender: TObject); | procedure TForm1.BitBtn2Click(Sender: TObject); | ||
begin | 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; | ||
end. | end. | ||
| − | |||
*'''Форма с результатом работы программы:''' | *'''Форма с результатом работы программы:''' | ||
| − | [[Изображение:7- | + | [[Изображение:7-3.JPG]] |
==Задание== | ==Задание== | ||
Версия 10:58, 1 марта 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.
- Форма с результатом работы программы:
Задание
| Номер варианта | Условие | |
|---|---|---|
| Проверить, является ли строка палиндромом (т.е. читается ли она одинакого слева на право и справа налево). Пробелы игнорируются. Например, шалаш, а роза упала на лапу азора. | ||
| Проверить, верно ли что в строке чередуются гласные и согласные буквы.Пробелы игнорируются. | ||
| Проверить, имеется ли в заданном тексте баланс открывающихся и закрывающихся скобок. | ||
| В заданном предложении указать слово, в котором доля гласных а,е,и максимальна. | ||
| В заданном предложении найти самое короткое и самое длинное слово. | ||
| Для каждого символа заданного текста указать, сколько раз он встречается в тексте. Сообщение об одном символе должно печататься не более одного раза. | ||
| В заданном тексте удалить символ "," и подсчитать число удаленных символов. | ||
| В заданном тексте подсчитать количество гласных букв. | ||
| В заданном тексте заменить каждый символ "а", стоящий на четном месте, на символ "о". | ||
| Подсчитать количество слов в предложении. | ||
| Определить, сколько раз в строке встречается заданное слово. | ||
| Для каждого слова заданного предложения указать долю согласных. | ||
| Определить слово в заданном предложении, в котором доля гласных максимальна. | ||
| Удалить из текста пробелы и подсчитать число удаленных символов. |
| Номер варианта | Условие |
|---|---|
| Дан массив из слов А(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.