Помощь в написании студенческих работ
Антистрессовый сервис

Проблемы хранения результата

РефератПомощь в написанииУзнать стоимостьмоей работы

Нам потребуется 1 служебная переменная z которая будет отвечать за вес нашего числа. Изначально её приравняем к 100 000 000, создадим цикл в котором будем её делить на 10, уменьшая тем самым вес числа. Поскольку мы будем использовать номер элемента массива x в качестве номера весового коэффициента числа, то мы будем последовательно к Fr прибавлять значение x умноженное на z. В итоге за шаг нашего… Читать ещё >

Проблемы хранения результата (реферат, курсовая, диплом, контрольная)

Хотя выше мы разобрали алгоритм который решает нашу задачу, нам нужно как-то сохранить все 92 решения. Для того чтобы потом можно было отобразить на выбор любое из решений, наверное целесообразней хранить координаты одного решения в одной переменной Fr. Итого мы получаем 92 переменных типа integer.

Остается только создать оператор который будет заполнять нашу переменную Fr, используя для этого значения массива X[1.8]. У нас есть 8 элементов массива X и в каждом может быть значения от 1 до 8, и нам нужно эти 8 элементов представить в виде одной переменной.

Поскольку у нас 8 элементов которые могут принимать значения от 1 до 8, попробуем взять восьмизначное десятичное число в котором порядковый номер цифр будет соответствовать номеру элементов массива X, а числа соответственно значениям элементов массива X. Пронумеруем цифры в нашем числе слева на право. Некоторые характеристики соответствующие переменной Fr приведены в таблице.

Значение числа.

1.8.

1.8.

1.8.

1.8.

1.8.

1.8.

1.8.

1.8.

Порядковый Номер (разряд).

Элем. массива.

Х[1].

X[2].

X[3].

X[4].

X[5].

X[6].

X[7].

X[8].

Весовой коэффициент элемента.

108.

107.

106.

105.

104.

103.

102.

101.

Из этого вытекает что наша переменная Fr может равняться числам от 11 111 111 до 88 888 888. В которых порядковый номер цифры отвечает за номер горизонтали, а сама цифра за позицию по вертикали. Определившись с методом, можно приступить к программной реализации.

Одним из возможных решений является алгоритм представленный ниже.

Таким образом для того чтобы получить значение i-того разряда искомого числа необходимо значение Х [i] * на его весовой коэффициент.

Нам потребуется 1 служебная переменная z которая будет отвечать за вес нашего числа. Изначально её приравняем к 100 000 000, создадим цикл в котором будем её делить на 10, уменьшая тем самым вес числа. Поскольку мы будем использовать номер элемента массива x в качестве номера весового коэффициента числа, то мы будем последовательно к Fr прибавлять значение x умноженное на z. В итоге за шаг нашего цикла z уменьшится на 1 порядок, и поменяется номер элемента x, значение которого умноженное на z прибавится к Fr, которое в начале равно 0. При последнем выполнении цикла мы получим в Fr восьмизначное число, отвечающие нужным свойствам. Наш цикл будет примерно таким.

Z=100 000 000.

For I:=1 to 8 do.

Z:= z/10.

fr:= fr+x[I]*z;

Так мы решили задачу хранения результатов, но остается теперь решить как восьмизначное число преобразовать обратно в массив x[1.8]. Для этого нам потребуется один цикл и две служебных переменных, одна z равная 10 000 000 и z1 равная Fr. Z1 нам понадобится для хранения промежуточного результата. При проходе цикла элементу массива x будет приравниваться результат операции целочисленного деления z1 на z, затем из z1 вычитается произведение элемента массива x и z, тем самым уменьшая z1 на 1 порядок.

И последней командой цикла является целочисленное деление z на 10, за счет этого z уменьшается на 1 порядок. В конце выполнения всех шагов цикла мы заполняем массив x [1.8] соответствующими значениями.

Z=10 000 000.

Z1=Fr.

For I:=1 to 8 do.

x[i]: = z1 div z.

z1:= z1- x[i]*z.

z:=z div 10;

Показать весь текст
Заполнить форму текущей работой