Учебный курс Программирование на Delphi. Модуль 6: различия между версиями
(→Задание) |
|||
| (не показано 8 промежуточных версий 3 участников) | |||
| Строка 28: | Строка 28: | ||
Оператор работает так же, но шаг переменной цикла –1. | Оператор работает так же, но шаг переменной цикла –1. | ||
== Пример 1.== | == Пример 1.== | ||
| − | *Условие | + | *'''Условие:''' |
Приписать к 523*** три такие цифры справа, чтобы полученное шестизначное число делилось на 7, на 8, на 9. | Приписать к 523*** три такие цифры справа, чтобы полученное шестизначное число делилось на 7, на 8, на 9. | ||
| − | *Использованные компоненты | + | *'''Использованные компоненты:''' |
| − | BitBtn1 | + | BitBtn1 - для запуска программы; <br> |
| + | BitBtn2 - для выхода из программы; <br> | ||
| + | Label1 - вывод результата.<br> | ||
| + | *'''Программный код:''' | ||
| − | Label1 | + | unit Unit1; |
| − | + | interface | |
| − | + | uses | |
| − | + | Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, | |
| + | Dialogs, StdCtrls, Buttons; | ||
| + | type | ||
| + | TForm1 = class(TForm) | ||
| + | Label1: TLabel; | ||
| + | BitBtn1: TBitBtn; | ||
| + | BitBtn2: TBitBtn; | ||
| + | procedure BitBtn2Click(Sender: TObject); | ||
| + | procedure BitBtn1Click(Sender: TObject); | ||
| + | private | ||
| + | { Private declarations } | ||
| + | public | ||
| + | { Public declarations } | ||
| + | end; | ||
| + | var | ||
Form1: TForm1; | Form1: TForm1; | ||
| − | implementation | + | implementation |
| − | {$R *.dfm} | + | {$R *.dfm} |
var s,a,b,c,n: integer; | var s,a,b,c,n: integer; | ||
| − | procedure TForm1.BitBtn2Click(Sender: TObject); | + | procedure TForm1.BitBtn2Click(Sender: TObject); |
| − | begin | + | begin |
| − | close; | + | close; |
| − | end; | + | end; |
| − | procedure TForm1.BitBtn1Click(Sender: TObject); | + | procedure TForm1.BitBtn1Click(Sender: TObject); |
| − | begin | + | begin |
for n:=0 to 999 do | for n:=0 to 999 do | ||
| − | + | begin | |
| − | + | s:=523000+n; | |
| − | + | a:=s mod 7; | |
| − | + | b:=s mod 8; | |
| − | + | c:=s mod 9; | |
| − | + | if (a=0) and (b=0) and (c=0) then label1.Caption:='523..'+inttostr(n); | |
| − | + | end; | |
| − | end; | + | end; |
| − | end. | + | end. |
| − | *Форма с результатом работы программы | + | |
| + | *'''Форма с результатом работы программы:''' | ||
[[Изображение:-3-1.JPG]] | [[Изображение:-3-1.JPG]] | ||
==Задание== | ==Задание== | ||
| − | Таблица | + | Таблица 7 |
| − | < | + | |
| + | {| border=1 | ||
| + | |- | ||
| + | !Номер варианта||Условие | ||
| + | |- | ||
| + | |<center>1</center>|| Найти все трехзначные числа, равные сумме кубов своих цифр. | ||
| + | |- | ||
| − | Таблица | + | |<center>2</center>||Найти все двузначные числа, сумма цифр которых не меняется при умножении числа на 2,3,4,5,6,7,8,9. |
| + | |- | ||
| + | |<center>3</center>||Найти все трехзначные числа, сумма цифр которых равна данному целому числу. | ||
| + | |- | ||
| + | |<center>4</center>||Найти все трехзначные числа, квадраты которых оканчиваются тремя одинаковыми цифрами, отличными от нуля. | ||
| + | |- | ||
| + | |<center>5</center>||В магазине имеется мастика в ящиках по 16 кг, 17 кг и 21 кг. Получить 185 кг мастики без вскрытия ящиков. Рассмотреть все варианты. | ||
| + | |- | ||
| + | |<center>6</center>||Представить в записи 42*4* вместо звездочек такие цифры, чтобы полученное пятизначное число делилось на 72. | ||
| + | |- | ||
| + | |<center>7</center>||Найти все трехзначные числа кратные 7 и сумма цифр, которых тоже кратна 7. | ||
| + | |- | ||
| + | |<center>8</center>||Найти четырехзначное число, которое при делении на 133 дает в остатке 125, а при делении на 134 дает в остатке 111. | ||
| + | |- | ||
| + | |<center>9</center>||Решить арифметический ребус КИО*ИО= ТОКИО. Вместо каждой буквы необходимо поставить некоторую цифру, причем одинаковые буквы означают одинаковые цифры, а различные буквы - различные цифры. | ||
| + | |- | ||
| + | |<center>10</center>||Сократить дробь, имеющую данные числитель а и знаменатель b. Предусмотреть выделение целой части в случае a > b. | ||
| + | |- | ||
| + | |<center>11</center>||Определить сколько делителей и какие имеет данное натуральное число. | ||
| + | |- | ||
| + | |<center>12</center>||Найти сумму делителей данного натурального числа. | ||
| + | |- | ||
| + | |<center>13</center>||Найти все "пифагоровы" тройки натуральных чисел, наибольшее из которых не превосходит n (Тройка натуральных чисел называется пифагоровой, если сумма квадратов двух из них равна квадрату третьего). | ||
| + | |- | ||
| + | |<center>14</center>||Найти все четырехзначные числа, у которых сумма первых двух цифр равна сумме двух последних. | ||
| + | |- | ||
| + | |} | ||
| + | Таблица 8 (Находится в разработке) | ||
==Литература== | ==Литература== | ||
Текущая версия на 09:00, 19 апреля 2008
Учебный курс Программирование на Delphi. Модуль 6
Содержание
Оператор for
Алгоритм называется циклическим, если он содержит многократное выполнение одних и тех же ветвей при различных значениях промежуточных данных.
Различают циклы с параметрами и циклы с условием. Для программирования циклов с параметром в Delphi используют оператор for.
Формат оператора:
for v := а1 to а2 do оператор;
v – переменная цикла – переменная порядкового типа,
a1- выражение, задающее начальное значение переменной цикла,
a2 - выражение, задающее конечное значение переменной цикла.
Оператор – оператор, выполнение которого будет повторяться (оператор тела цикла).
Если нужно сделать цикл по убыванию, то оператор for записывается в виде
for v: =a1 downto a2 do оператор;
Оператор работает так же, но шаг переменной цикла –1.
Пример 1.
- Условие:
Приписать к 523*** три такие цифры справа, чтобы полученное шестизначное число делилось на 7, на 8, на 9.
- Использованные компоненты:
BitBtn1 - для запуска программы;
BitBtn2 - для выхода из программы;
Label1 - вывод результата.
- Программный код:
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, Buttons;
type
TForm1 = class(TForm)
Label1: TLabel;
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}
var s,a,b,c,n: integer;
procedure TForm1.BitBtn2Click(Sender: TObject);
begin
close;
end;
procedure TForm1.BitBtn1Click(Sender: TObject);
begin
for n:=0 to 999 do
begin
s:=523000+n;
a:=s mod 7;
b:=s mod 8;
c:=s mod 9;
if (a=0) and (b=0) and (c=0) then label1.Caption:='523..'+inttostr(n);
end;
end;
end.
- Форма с результатом работы программы:
Задание
Таблица 7
| Номер варианта | Условие |
|---|---|
| Найти все трехзначные числа, равные сумме кубов своих цифр. | |
| Найти все двузначные числа, сумма цифр которых не меняется при умножении числа на 2,3,4,5,6,7,8,9. | |
| Найти все трехзначные числа, сумма цифр которых равна данному целому числу. | |
| Найти все трехзначные числа, квадраты которых оканчиваются тремя одинаковыми цифрами, отличными от нуля. | |
| В магазине имеется мастика в ящиках по 16 кг, 17 кг и 21 кг. Получить 185 кг мастики без вскрытия ящиков. Рассмотреть все варианты. | |
| Представить в записи 42*4* вместо звездочек такие цифры, чтобы полученное пятизначное число делилось на 72. | |
| Найти все трехзначные числа кратные 7 и сумма цифр, которых тоже кратна 7. | |
| Найти четырехзначное число, которое при делении на 133 дает в остатке 125, а при делении на 134 дает в остатке 111. | |
| Решить арифметический ребус КИО*ИО= ТОКИО. Вместо каждой буквы необходимо поставить некоторую цифру, причем одинаковые буквы означают одинаковые цифры, а различные буквы - различные цифры. | |
| Сократить дробь, имеющую данные числитель а и знаменатель b. Предусмотреть выделение целой части в случае a > b. | |
| Определить сколько делителей и какие имеет данное натуральное число. | |
| Найти сумму делителей данного натурального числа. | |
| Найти все "пифагоровы" тройки натуральных чисел, наибольшее из которых не превосходит n (Тройка натуральных чисел называется пифагоровой, если сумма квадратов двух из них равна квадрату третьего). | |
| Найти все четырехзначные числа, у которых сумма первых двух цифр равна сумме двух последних. |
Таблица 8 (Находится в разработке)
Литература
- Архангельский. Программирование на Delphi 6. – М: БИНОМ, 2002
- Бобровский С. Delphi 7. Учебный курс. – СПб: Питер, 2003
- Культин Н. Основы программирования в Delphi 7. СПб: БХВ-Петербург, 2005.