Учебный курс Программирование на Delphi. Модуль 14: различия между версиями
| Строка 1: | Строка 1: | ||
| − | < | + | <center>'''Использование функций'''</center> |
| − | |||
| − | |||
| − | Пример | + | == Пример 1.== |
| + | *'''Условие задачи:''' | ||
| + | Даны все действительные числа a,b,c.Вычислить | ||
| + | max(a,b,+c)+max(a+b,c)/1+max(a+bc,12) | ||
| + | *'''Использованные компоненты:''' | ||
| − | unit Unit2; | + | Label1 - используется для текстовых комментариев; |
| + | |||
| + | Label2 - используется для вывода суммы; | ||
| + | |||
| + | edit1 - используется для ввода числа; | ||
| + | |||
| + | edit2 - используется для ввода числа; | ||
| + | |||
| + | edit3 - используется для ввода числа; | ||
| + | |||
| + | BitBtn1 - запуск программы; | ||
| + | |||
| + | BitBtn2 - выход из программы; | ||
| + | |||
| + | *'''Программный код:''' | ||
| + | |||
| + | unit Unit2; | ||
interface | interface | ||
| Строка 70: | Строка 88: | ||
end. | end. | ||
| − | |||
| − | + | *'''Форма с результатом работы программы:''' | |
| + | [[Изображение:-7-1.JPG]] | ||
| + | == Пример 2.== | ||
| + | *'''Условие задачи:''' | ||
| + | Из матрицы А[3,4] получить вектор В, элементами которого являются наибольшие элементы столбцов матрицы. | ||
| + | *'''Использованные компоненты:''' | ||
| − | + | Label1 - используется для текстовых комментариев; | |
| − | + | Label2 - используется для текстовых комментариев; | |
| − | + | edit1 - используется для ввода числа; | |
| − | |||
| − | |||
| − | |||
| − | + | BitBtn1 - запуск программы; | |
| + | BitBtn2 - выход из программы; | ||
| − | *Программный код | + | *'''Программный код:''' |
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| + | unit Unit1; | ||
| + | interface | ||
| + | uses | ||
| + | Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, | ||
| + | Dialogs, XPMan, StdCtrls, Buttons; | ||
| + | type | ||
| + | TForm1 = class(TForm) | ||
| + | Edit1: TEdit; | ||
| + | Label1: TLabel; | ||
| + | Label2: TLabel; | ||
| + | XPManifest1: TXPManifest; | ||
| + | Label3: TLabel; | ||
| + | BitBtn1: TBitBtn; | ||
| + | BitBtn2: TBitBtn; | ||
| + | |||
| + | procedure BitBtn1Click(Sender: TObject); | ||
| + | procedure BitBtn2Click(Sender: TObject); | ||
| + | private | ||
| + | { Private declarations } | ||
| + | public | ||
| + | { Public declarations } | ||
| + | end; | ||
| + | var | ||
| + | Form1: TForm1; | ||
| + | implementation | ||
| + | {$R *.dfm} | ||
| + | function F(k: integer): integer; | ||
| + | begin | ||
| + | if (k=1) or (k=2) | ||
| + | then F:=1 | ||
| + | else F:= F(k-1) + F(k-2) | ||
| + | end; | ||
procedure TForm1.BitBtn1Click(Sender: TObject); | procedure TForm1.BitBtn1Click(Sender: TObject); | ||
| − | + | var N: integer; | |
begin | begin | ||
| − | + | N:=strtoint(Edit1.Text); | |
| − | + | label2.Caption:=inttostr(F(n)); | |
| − | + | end; | |
| − | + | procedure TForm1.BitBtn2Click(Sender: TObject); | |
| − | + | begin | |
| − | + | close; | |
| − | + | end; | |
| − | + | end. | |
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | procedure TForm1.BitBtn2Click(Sender: TObject); | ||
| − | begin | ||
| − | close; | ||
| − | end | ||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | end. | ||
| − | |||
| − | |||
| + | *'''Форма с результатом работы программы:''' | ||
| + | [[Изображение:7-2.JPG]] | ||
==Задание== | ==Задание== | ||
| − | Таблица 13 | + | <CENTER>'''Таблица №1'''</CENTER> |
| + | {| border=4 | ||
| + | !Номер варианта||Условие|| | ||
| + | |- | ||
| + | |<center>1</center>||Проверить, является ли строка палиндромом (т.е. читается ли она одинакого слева на право и справа налево). Пробелы игнорируются. Например, шалаш, а роза упала на лапу азора.|| | ||
| + | |- | ||
| + | |- | ||
| + | |<center>2</center>||Проверить, верно ли что в строке чередуются гласные и согласные буквы.Пробелы игнорируются.|| | ||
| + | |- | ||
| + | |- | ||
| + | |<center>3</center>||Проверить, имеется ли в заданном тексте баланс открывающихся и закрывающихся скобок.|| | ||
| + | |- | ||
| + | |- | ||
| + | |<center>4</center>||В заданном предложении указать слово, в котором доля гласных а,е,и максимальна.|| | ||
| + | |- | ||
| + | |- | ||
| + | |<center>5</center>||В заданном предложении найти самое короткое и самое длинное слово.|| | ||
| + | |- | ||
| + | |- | ||
| + | |<center>6</center>||Для каждого символа заданного текста указать, сколько раз он встречается в тексте. Сообщение об одном символе должно печататься не более одного раза.|| | ||
| + | |- | ||
| + | |- | ||
| + | |<center>7</center>||В заданном тексте удалить символ "," и подсчитать число удаленных символов.|| | ||
| + | |- | ||
| + | |- | ||
| + | |<center>8</center>||В заданном тексте подсчитать количество гласных букв.|| | ||
| + | |- | ||
| + | |- | ||
| + | |<center>9</center>||В заданном тексте заменить каждый символ "а", стоящий на четном месте, на символ "о".|| | ||
| + | |- | ||
| + | |- | ||
| + | |<center>10</center>||Подсчитать количество слов в предложении.|| | ||
| + | |- | ||
| + | |- | ||
| + | |<center>11</center>||Определить, сколько раз в строке встречается заданное слово.|| | ||
| + | |- | ||
| + | |- | ||
| + | |<center>12</center>||Для каждого слова заданного предложения указать долю согласных.|| | ||
| + | |- | ||
| + | |- | ||
| + | |<center>13</center>||Определить слово в заданном предложении, в котором доля гласных максимальна.|| | ||
| + | |- | ||
| + | |- | ||
| + | |<center>14</center>||Удалить из текста пробелы и подсчитать число удаленных символов.|| | ||
| + | |- | ||
| + | |} | ||
| + | <CENTER>'''Таблица №2'''</CENTER> | ||
| + | {| border=1 | ||
| + | |- | ||
| + | !Номер варианта||Условие | ||
| + | |- | ||
| + | |<center>1</center>||Дан массив из слов А(N). Найти все слова, заканчивающиеся гласной буквой. | ||
| + | |- | ||
| + | |<center>2</center>||Дан массив из слов Х(m). Найти все слова четной длины. | ||
| + | |- | ||
| + | |<center>3</center>||Дан массив из слов У(к). Найти все слова с нечетным количеством буквы "о". | ||
| + | |- | ||
| + | |<center>4</center>||Дан массив из слов A(m). Найти все слова с длиной, не превышающей заданной. | ||
| + | |- | ||
| + | |<center>5</center>||Дан массив из слов X(n). Найти все слова, содержащие хотя бы одно вхождение заданной подстроки. | ||
| + | |- | ||
| + | |<center>6</center>||Дан массив из слов A(k). Найти все слова, начинающиеся и заканчивающиеся одной и той же буквой. | ||
| + | |- | ||
| + | |<center>7</center>||Дан массив из слов A(k). Найти все слова с четным количеством буквы "е". | ||
| + | |- | ||
| + | |<center>8</center>||Дан массив из слов У(L). Найти все слова, содержащие шипящие. | ||
| + | |- | ||
| + | |<center>9</center>||Дан массив из слов A(n). Найти все слова, начинающиеся с заданной буквы. | ||
| + | |- | ||
| + | |<center>10</center>||Дан массив из слов У(m). Найти все слова, у которых есть буквы а, о и е. | ||
| + | |- | ||
| + | |<center>11</center>||Дан массив из слов Т(к). Найти все слова, начинающиеся или заканчивающиеся буквой "з". | ||
| + | |- | ||
| + | |<center>12</center>||Дан массив из слов Т(к). Найти все слова, содержащие заданное количество букв. | ||
| + | |- | ||
| + | |<center>13</center>||Дан массив из слов Z(m). Найти все слова, в которых есть две подряд идущие одинаковые буквы. | ||
| + | |- | ||
| + | |<center>14</center>||Дан массив из слов X(k). Найти все слова, длина которых кратна трем. | ||
| − | + | |} | |
==Литература== | ==Литература== | ||
| Строка 182: | Строка 243: | ||
#Бобровский С. Delphi 7. Учебный курс. – СПб: Питер, 2003 | #Бобровский С. Delphi 7. Учебный курс. – СПб: Питер, 2003 | ||
#Культин Н. Основы программирования в Delphi 7. СПб: БХВ-Петербург, 2005. | #Культин Н. Основы программирования в Delphi 7. СПб: БХВ-Петербург, 2005. | ||
| − | |||
==Ссылки== | ==Ссылки== | ||
Версия 10:06, 1 марта 2008
Содержание
Пример 1.
- Условие задачи:
Даны все действительные числа a,b,c.Вычислить max(a,b,+c)+max(a+b,c)/1+max(a+bc,12)
- Использованные компоненты:
Label1 - используется для текстовых комментариев;
Label2 - используется для вывода суммы;
edit1 - используется для ввода числа;
edit2 - используется для ввода числа;
edit3 - используется для ввода числа;
BitBtn1 - запуск программы;
BitBtn2 - выход из программы;
- Программный код:
unit Unit2;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, ExtCtrls, Grids, XPMan, Buttons;
type
TForm1 = class(TForm)
Edit1: TEdit;
Edit2: TEdit;
Edit3: TEdit;
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
Label4: TLabel;
Label5: TLabel;
XPManifest1: TXPManifest;
BitBtn1: TBitBtn;
BitBtn2: TBitBtn;
procedure BitBtn2Click(Sender: TObject);
procedure BitBtn1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm} function max (x,y: real): real;
begin
if x > y
then max:=x
else max:=y
end;
var z, a, b, c: real; procedure TForm1.BitBtn2Click(Sender: TObject); begin
begin
a:=strtoint(edit1.Text);
b:=strtoint(edit2.text);
c:=strtoint(edit3.Text);
z:=(max(a, b+c) + max(a+b, c*c))/(1+ max(a+b*c, 12));
Label4.Caption:=floattostr(z);
end; end;
procedure TForm1.BitBtn1Click(Sender: TObject); begin close; end;
end.
- Форма с результатом работы программы:
Пример 2.
- Условие задачи:
Из матрицы А[3,4] получить вектор В, элементами которого являются наибольшие элементы столбцов матрицы.
- Использованные компоненты:
Label1 - используется для текстовых комментариев;
Label2 - используется для текстовых комментариев;
edit1 - используется для ввода числа;
BitBtn1 - запуск программы;
BitBtn2 - выход из программы;
- Программный код:
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, XPMan, StdCtrls, Buttons;
type
TForm1 = class(TForm)
Edit1: TEdit;
Label1: TLabel;
Label2: TLabel;
XPManifest1: TXPManifest;
Label3: TLabel;
BitBtn1: TBitBtn;
BitBtn2: TBitBtn;
procedure BitBtn1Click(Sender: TObject);
procedure BitBtn2Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
function F(k: integer): integer;
begin
if (k=1) or (k=2)
then F:=1
else F:= F(k-1) + F(k-2)
end;
procedure TForm1.BitBtn1Click(Sender: TObject);
var N: integer;
begin
N:=strtoint(Edit1.Text);
label2.Caption:=inttostr(F(n));
end;
procedure TForm1.BitBtn2Click(Sender: TObject);
begin
close;
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.