Учебный курс Программирование на Delphi. Модуль 6: различия между версиями
(→Задание) |
|||
(не показано 9 промежуточных версий 4 участников) | |||
Строка 28: | Строка 28: | ||
Оператор работает так же, но шаг переменной цикла –1. | Оператор работает так же, но шаг переменной цикла –1. | ||
== Пример 1.== | == Пример 1.== | ||
− | *Условие | + | *'''Условие:''' |
Приписать к 523*** три такие цифры справа, чтобы полученное шестизначное число делилось на 7, на 8, на 9. | Приписать к 523*** три такие цифры справа, чтобы полученное шестизначное число делилось на 7, на 8, на 9. | ||
− | *Использованные компоненты | + | *'''Использованные компоненты:''' |
− | BitBtn1 | + | BitBtn1 - для запуска программы; <br> |
− | Label1 - вывод | + | BitBtn2 - для выхода из программы; <br> |
+ | Label1 - вывод результата.<br> | ||
+ | *'''Программный код:''' | ||
− | + | unit Unit1; | |
− | var | + | 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.