АкушерствоАнатомияАнестезиологияВакцинопрофилактикаВалеологияВетеринарияГигиенаЗаболеванияИммунологияКардиологияНеврологияНефрологияОнкологияОториноларингологияОфтальмологияПаразитологияПедиатрияПервая помощьПсихиатрияПульмонологияРеанимацияРевматологияСтоматологияТерапияТоксикологияТравматологияУрологияФармакологияФармацевтикаФизиотерапияФтизиатрияХирургияЭндокринологияЭпидемиология

Пример решения задачи. Задача. Составьте программу, выясняющую является ли число N простым

Прочитайте:
  1. I. ЦЕЛИ И ЗАДАЧИ ДИСЦИПЛИНЫ
  2. II. Задачи по частной патологической анатомии
  3. II. ОСНОВНЫЕ ЗАДАЧИ ДИАГНОСТИКИ.
  4. II. Целевые задачи
  5. II. Целевые задачи.
  6. III. Задачи
  7. III. ЗАДАЧИ
  8. III. ЗАДАЧИ ЗАНЯТИЯ.
  9. III.ЗАДАЧИ
  10. IX. Клинические задачи и тестовый контроль

 

Задача. Составьте программу, выясняющую является ли число N простым.

 

При загрузке, Delphi автоматически создает новый проект приложения. Создадим отдельную папку (назовем ее Task1) и сохраним файлы проекта в эту папку, выбрав в среде разработки Delphi меню File > Save All. Delphi автоматически предложит сохранить все файлы проекта.

 

Переходим на вкладку Standard палитры компонентов Delphi и помещаем на форму компоненты: Memo (многострочный редактор текста, оконный элемент управления), Label (графический элемент управления для отображения однострочного текста), Edit (однострочный редактор текста, оконный элемент управления), Button (обычная кнопка, оконный элемент управления).

 

Назначим значения свойств компонента Memo1:

 

Ø Align = alTop (выравнивание компонента по верхнему краю);

Ø Height = 120 (высота компонента);

Ø BorderStyle = bsNone (отсутствие графических рамок у компонента);

Ø Alignment = taCenter (выравнивание текста по центру);

Ø Enabled = false (компонент не доступен пользователю).

 

В редакторе свойства Lines компонента Memo1, напечатаем текст задачи (Рис. 1).

 

Рис. 1. Редактор свойства Lines компонента Memo1.

 

Назначим значения свойств компонента Label1:

 

Ø Caption = Введите число N (текст компонента);

Ø Left = 16 (положение от левого края формы);

Ø Top = 144 (положение от заголовка формы);

 

Назначим значения свойств компонента Edit1:

 

Ø Text = 123 (текст компонента);

Ø Left = 16 (положение от левого края формы);

Ø Top = 160 (положение от заголовка формы);

Ø Width = 265 (ширина компонента).

 

Назначим значения свойств компонента Button1:

 

Ø Caption = Выполнить (надпись на кнопке);

Ø Left = 288 (положение от левого края формы);

Ø Top = 160 (положение от заголовка формы);

Ø Width = 75 (ширина компонента).

 

Назначим значения свойств компонента Form1 (формы):

 

Ø Caption = Пример решения задачи (заголовок формы);

Ø Color = clWhite (белый цвет формы);

Ø Width = 545 (ширина формы);

Ø Height = 239 (высота формы);

Ø BorderStyle = bsSingle (форма с неизменяемым размером);

Ø Position = poScreenCenter (показывать форму в центре экрана).

 

Форма будет выглядеть следующим образом (Рис. 2):

 

Рис. 2. Редактируемая форма

 

Исходные данные (число N) пользователь должен будет ввести при помощи однострочного редактора текста (компонент Edit1). Далее при нажатии на кнопку (компонент Button1), введенные данные обрабатываются согласно условию задачи, и в отдельном информационном окне выводится результат.

 

Так как нам в задаче требуется в качестве исходных данных получить число, а компонент Edit1 работает только с текстом, т.е. данными типа string, то нам понадобится специальная процедура преобразования типа Val. Эта процедура позволяет преобразовать строку в число, и предотвратить ошибку перевода (например, в ситуации, когда текст не будет состоять только из цифр).

 

Создадим обработчик события OnClick компонента Button1. Для этого выделим компонент Button1, обратимся к вкладке Events инспектора объектов (Object Inspector). Далее при «двойном щелчке» в области значения события OnClick, Delphi автоматически создаст обработчик этого события и покажет окно редактора кода (Рис. 3).

Рис. 3. Окно редактора кода. Модуль формы. Обработчик события OnClick компонента Button1.

 

В обработчике события OnClick компонента Button1 поместим программный код решения нашей задачи. Обработчик будет выглядеть следующим образом:

 

procedure TForm1.Button1Click(Sender: TObject);

var N,ErrorCode,t,i:integer;

Nx: string;

Begin

// переменной Nx присваиваем значение – текст

// компонента Edit1

Nx:=Edit1.Text;

// переводим текст (Nx) в число (N)

Val(Nx,N,ErrorCode);

// если при переводе не произошло ошибок, то

if ErrorCode=0 then

Begin

// решение задачи

if (N<>1) and (N<>0) then

Begin

t:=0;

for i:=1 to N do

if N mod i=0 then t:=t+1;

 

if t=2 then showmessage('Простое!')

else showmessage('Составное!');

End

else showmessage('Ни простое и не составное!');

 

End

else showmessage('Введенное значение не является числом!');

end;

 

Примечание. Процедура ShowMessage позволяет вывести на экран информационное окно со строкой-сообщением.

Задачи по вариантам

1. Составьте программу, подсчитывающую количество нулей в записи натурального числа N.

2. Составьте программу, выясняющую, все цифры числа N различны.

3. Составьте программу, переводящую число N в двоичную систему счисления.

4. Составьте программу, переводящую число N в троичную систему счисления

5. Составьте программу, заменяющую четные цифры числа N единицей

6. Составьте программу, преобразующую число N, таким образом, чтобы его цифры шли по убыванию

7. Составьте программу, подсчитывающую количество составных делителей числа N

8. Составьте программу, подсчитывающую количество простых цифр числа N

9. Составьте программу, выясняющую, сколько цифр числа M используются при написании числа N.

10. Составьте программу, подсчитывающую сумму тех цифр числа M, что являются делителями числа N

11. Составьте программу, суммирующую все цифры числа N, что встречаются в числе M

12. Составьте программу, выводящую на экран первую по порядку составную цифру числа N

13. Составьте программу, подсчитывающую сумму простых цифр числа N

14. Составьте программу, выясняющую, есть записи числа N хотя бы один нуль.

15. Составьте программу, выводящую на экран те цифры числа N, что встречаются в записи числа M

16. Составьте программу, поиска наименьшего общего делителя чисел N и M большего заданного T(T>1).

17. Составьте программу, выясняющую, сколько цифр числа N используются при записи числа M

18. Составьте программу, генерирующую число M по правилу: каждая цифра нового числа – это цифра числа N увеличенная на единицу (если N=201, то M=312; если N=901 то M=12)

19. Составьте программу, поиска наименьшего общего составного делителя чисел N и M

20. Составьте программу, подсчитывающую сумму цифр числа N

21. Составьте программу, выясняющую, является ли число N делителем хотя бы одного из чисел K или M. Если такое условие выполняется, то подсчитывающую количество цифр числа N встречающихся в числе, представляющем сумму чисел K и M

22. Составьте программу, перевода числа из двоичной системы счисления в десятичную.

23. Составьте программу, выясняющую, все цифры числа N одинаковы.

24. Составьте программу, подсчитывающую, сколько цифр числа K нужно исправить, чтобы получилось число J

25. Составьте программу, генерирующую число M, которое будет состоять из четных цифр числа N

26. Составьте программу, подсчитывающую произведение тех цифр числа M, что используются при написании числа N

27. Составьте программу, перевода числа из десятичной системы счисления в шестнадцатеричную. Результатом должна быть строка представляющая запись числа в 16-ой системе счисления (если N=58, то ответ равен ‘3A’)

28. Составьте программу, подсчитывающую сумму всех составных двузначных чисел, входящих в интервал [P,Q]

29. Составьте программу, выясняющую, сколько четных цифр используется в записи числа N

30. Составьте программу, позволяющую выяснить, сколько составных цифр используется в записи числа N

31. Составьте программу, выясняющую, сколько раз в записи числа N встречается цифра T

32. Составьте программу, подсчитывающую количество составных делителей числа N

33. Составьте программу, подсчитывающую количество простых делителей числа M кратных 7.

34. Составьте программу, суммирующую те составные делители числа N, что кратны 3

35. Составьте программу, генерирующую число Z по правилу: число Z равно произведению тех составных делителей числа N, что одновременно являются делителями чисел Z и P.

36. Составьте программу, вычисляющую факториал числа N

37. Составьте программу, подсчитывающую сумму составных делителей числа M

38. Составьте программу, выясняющую, все ли цифры числа N, стоящие на нечетных местах различны.

39. Составьте программу, перевода числа из 4–ой системы счисления в 10–ую

40. Составьте программу, подсчитывающую, сколько цифр числа Z используются при написании числа M.

 


Лабораторная работа № 3

«Класс TStrings. Компоненты для отображения списка строк ListBox, ComboBox»

 

TStrings – это абстрактный класс. Он предназначен для хранения в памяти списка строк (набора строк). TStrings используется в таких компонентах как Memo (многострочный редактор текста), ListBox и ComboBox (элементы управления для отображения списка строк). Например, компонент Memo имеет свойство Lines, имеющее своим типом класс TStrings. В компонентах ListBox и ComboBox таким свойством является свойство Items. Рассмотрим элементы класса TStrings:

 

Элемент Описание
property Count:integer Количество хранимых строк
property Strings[Index: integer]:String Свойство-массив. Организует доступ к строке по ее индексу
function Add(const S:String):integer Добавляет строку в конец списка, и возвращает ее индекс
procedure Append(const S:String) Добавляет строку в конец списка
procedure AddStrings(Strings:TStrings) Добавляет строки из другого списка в конец данного списка
procedure Assign(Source:TPersistent) Копирует содержимое другого списка в данный
procedureClear Удаляет все строки из списка. Count=0.
procedure Delete(Index: integer) Удаляет строку по заданному индексу
function Equals(Strings:TStrings):Boolean Выясняет, совпадает ли полностью данный список строк с другим списком строк
procedure Exchange(Index1:integer;Index2:integer) Меняет местами строки по их заданным индексам
function IndexOf(const S:String):integer Выясняет индекс заданной строки
procedureInsert(Index:integer; const S:String) Вставляет строку S перед строкой с индексом Index
procedure LoadFromFile(const FileName:string) Загрузка строк из текстового файла
procedure SaveToFile(const FileName:string) Сохранение строк в текстовый файл

 

Класс TStrings является абстрактным, так как он содержит абстрактные (нереализованные) методы Clear, Delete, Insert. В компонентах Memo, ListBox, ComboBox – встроен механизм управления свойствами типа TStrings. Однако если вы хотите хранить список строк без использования специальных компонентов, вы можете воспользоваться классом TStringList. Этот класс является потомком класса TStrings и в нем переопределены все абстрактные элементы класса TStrings.

 

Примечание. В Delphi элементы любого списка индексируются с 0. Схематически список строк можно представить следующим образом:

0 строка1

1 строка2

2 строка3

3 строка4

4 строка5

Количество строк равно в данном случае 5. То есть свойство Count=5.


Дата добавления: 2015-09-18 | Просмотры: 948 | Нарушение авторских прав



1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 |



При использовании материала ссылка на сайт medlec.org обязательна! (0.009 сек.)