Автор работы: Пользователь скрыл имя, 27 Февраля 2013 в 14:58, курсовая работа
Задача: Дано число M в степени n, n - в пределе 1000.
Показать сколько раз повторяются числа с 0 до 9 включительно.
Постановка задачи и пред проектное исследование. Математическая модель поставленной задачи. Алгоритм и блок-схема работы программы. Разработка принципов работы программы и проектирование интерфейса.
Описание основных процедур и функций программы. Проверка работоспособности и доказательство правильности работы программного обеспечения. Инструкция пользователя.
Постановка задачи и пред проектное исследование 4
Математическая модель поставленной задачи 8
Алгоритм и блок-схема работы программы 12
Разработка принципов работы программы и проектирование интерфейса 16
Описание основных процедур и функций программ 21
Проверка работоспособности и доказательство правильности работы ПО 26
Инструкция пользователя 28
Под алгоритмом обычно понимают четко определенную последовательность действий, приводящую через конечное число шагов к результату — решению задачи, для которой разработан алгоритм.
Основные свойства, присущие любому алгоритму:
некоторым множеством допустимых входных данных;
шагов (но это количество шагов, может быть разным для разных
входных данных).
В информатике и теории
алгоритмов вычислительная сложность
алгоритма — это функция, определяющая
зависимость объёма работы, выполняемой
некоторым алгоритмом, от размера
входных данных. Раздел, изучающий
вычислительную сложность, называется
теорией сложности вычислений. Объём
работы обычно измеряется абстрактными
понятиями времени и
В частности, теория сложности
вычислений определяет NP-полные задачи,
которые недетерминированная
1
2
3
4
5
6
7
В среде разработки Lazarus спроектируем интерфейс, разместив на форме управляющие элементы
Для нашей работы нам потребуется 4 основных компонента:
Разместим их путем перетаскивания на форму.
Так же
И являются одним из компонентов: Label.
Так же как:
Затем для запуска вычисления нажимается кнопка «Ответ» (Button1)
Результат вычислений выводится в компоненте Memo.
При запуске приложения с помощью команды (caption) высвечивается окно:
В котором пользователь может выбрать Число М в степени n, и получить ответ нажав на кнопку «Ответ».
После ввода числа пользователем, происходит проверка корректности ввода данных. Ввиду того, что вычисление количества 0 для отрицательных чисел будет не корректной с целью корректировки введённых данных.
После чего выполняется возведение числа M в степень n, которые ранее выбрал пользователь.
Далее реализуется цикл, в теле которого производиться подсчёт количества цифр от 0 до 9 из подсчитанной суммы M в степени n.
После того, как подсчет от 0 до 9 закончиться происходит вывод полученного результата в компонент Memo1.
То есть в компонент Memo1 выводиться переменные:
(c)- Числа, которые мы ищем (от 0 до 9)
(strl)- Число полученное в результате возведения числа M в степень n, и в котором мы ищем количество повторений.
(b)- Количество повторяющихся чисел от 0 до 9.
После чего происходит выход из цикла.
Ниже представлен листинг программы с комментариями, алгоритмов возведения числа М в степени n, и подсчёта чисел от 0 до 9.
Изначально при загрузке приложения выводится команда вывода на экран приглашения ввести число, в котором мы будем подсчитывать число 1 в двоичном представлении:
Label1(Введите число, что бы подсчитать количество 1 в его двоичном представлении).
Листинг программы с постусловием:
(* Начало блока тела программы *)
unit Unit1;
{$mode objfpc}{$H+}
interface
uses
(*Описание используемых модулей*)
Classes, SysUtils, FileUtil, LResources, Forms, Controls, Graphics, Dialogs,
Buttons, ComCtrls, Spin, ButtonPanel, StdCtrls, Arrow;
Type
(*Описание компонентов на форме*)
{ TForm1 }
TForm1 = class(TForm)
BitBtn1: TBitBtn;
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
Label4: TLabel;
Memo1: TMemo;
SpinEdit1: TSpinEdit;
SpinEdit2: TSpinEdit;
procedure BitBtn1Click(Sender: TObject); private
{ private declarations }
public
{ public declarations }
end;
var
(*Главная форма*)
Form1: TForm1;
implementation
{ TForm1 }
procedure TForm1.Button1Click(Sender: TObject); (*Блок определения переменных, где М и n – вводимые пользователем числа, (b)- Количество повторяющихся чисел от 0 до 9. (c)- Числа, которые мы ищем (от 0 до 9)
(strl)- Число полученное в результате возведения числа M в степень n. Тип переменных- целочисленный.*)
var
n,m,i,b,c:integer;
s:extended;
strl,sr:string;
(* Начало блока тела программы *)
Begin
(* считывание введённого числа *)
m:=strtoint(form1.spinedit1.
n:=strtoint(form1.spinedit3.
(* Возведение числа М в степень n *)
s:=exp(ln(m)*n);
(*Вывод полученного
form1.Memo1.Lines.Add (floattostr(s));
(*перевод чисел в строку*)
Str(S:n:m,strl);
(*Вывод числа strl*)
form1.Memo1.Lines.Add(strl);
(*Приравнивание переменных к нулю*)
c:=0 ;b:=0;
(*Открытие цикла while*)
while c<=9 do begin
(*перевод чисел в строку*)
str(c,sr);
(*Открытие цикла for(счётчик), Функция length возвращает в качестве результата значение текущей длины строки-параметра *)
for i:=1 to length(strl) do
begin
(* условие если strl[i] равно числу sr тогда к b+1, в противном случае возвращаемся циклу*)
if strl[i]=sr then inc(b);
end;
(* Выводим результат*)
form1.Memo1.Lines.Add('Число '+floattostr (c)+' в числе '+(strl)+' встречаеться '+floattostr(b)+' раз');
(*Прибавляем к переменной (С) 1,и приравниваем переменную b к нулю, после чего возвращаемся в цикл while*)
inc(c);
b:=0;
end;
end;
(* Конец программы *)
end.
Проведем тестирование данной системы на различные варианты:
1:
5 в степени 2=25
Количество повторений чисел 2=1;5=1
Результат работы системы:
2:
35 в степени 5= 52521875
Количество повторений чисел 1=1;2=1;3=0;4=0;5=3;8=1;
Результат работы системы:
3:
48 в степени 95= 5.2229702328614029E+0159
Количество повторений чисел
0=3;1=2;2=6;3=1;4=1;5=2;6=1;7=
Результат работы системы:
Приведенные выше примеры доказывают правильность и работоспособность данной программы.
Для установки программы не обходимо запустить установочный файл:
Setup.exe
Двойным нажатием на него левой кнопки мыши или нажав правой кнопкой мыши и выбрать появившегося меню «открыть».
После чего появившемся окне нужно выбрать язык «русский» или «английский».
После выбора языка нажмите кнопку «ОК»
Следующем отрытом окне:
Нажимаем на кнопку «Далее»
После чего в появившемся окне:
выбираем путь установки программы при помощи кнопки «обзор»
После нажимаем кнопку «Далее»
В след окне выбираем: нужен ли вам ярлык на рабочем столе.
- Нужен(С галочкой)
- Не нужен(Без галочки)
После соответствующего вам выбора, нажимаем кнопку «Далее»
В появившемся окне вы можете проверить (каталог установки это то место в компьютере, куда вы устанавливаете данную программу) и создали ли вы ярлык на рабочем столе или же нет?
Если вы хотите что-то изменить нажмите кнопку «Назад»
Если всё в порядке выберете кнопку «Установить»
После завершения процесса установки, появиться окно
В котором вы можете выбрать запустить программу поставив галочку перед «Запустить задачу на поиск схожих чисел», в противном случае галочку не ставим.
После вашего выбора нажимаем кнопку «Готово»
После чего запускаем программу с ярлыка на рабочем столе или же в нашем случае это запуск после нажатие кнопки «Готово»
В появившемся окне:
Выбираем значения M и N:
После вашего выбора, нажимаем на кнопку «ответ»
После получения результата появившегося в правой стороне окна
Можете скопировать ответ: выделив ответ и нажав на нём правой кнопкой мыши и появившемся меню выбрать «копировать» нажав левой кнопкой мыши.
После чего можете закрыть программу, нажав на «закрыть»
Инструкция по удалению:
Для удаления программы зайдите в меню «установка и удаление программ», Выберите программу (Сколько чисел1.00) и нажмите удалить.
Информация о работе Дано число n, подсчитать количество единиц в двоичной записи этого числа