1.25M
Категория: ИнформатикаИнформатика

Работа с массивами

1.

Индивидуальное задание по
теме «Работа с массивами»
Работу выполнила: студентка 1-го курса ИКНТ ПГНИУ
Киценко Рина, группа ПМИ-3-2022

2.

Условие задачи
Требуется написать программу, которая для
любых двух записей чисел X и Y определит
основания систем счисления b1 для X и b2
для Y, в которых заданные записи
представляют одно значение (число) и сумма
b1+b2 минимальна.
Например, пусть на входе задано 12 и 5. Тогда
программа должна напечатать
12(с/с3)=5(с/с6), так как 12(с/с3)=1*3+2*1=5
и 5(с/с6)=5.

3.

Алгоритм решения задачи
1
ОПРЕДЕЛЕНИЕ ПАР ЧИСЕЛ
В ФАЙЛЕ, ПРОВЕРКА
ВВОДА
Необходимо удостовериться,
что для каждого числа в
файле найдется пара
ВХОДНЫЕ ДАННЫЕ:
12 34
12 5510
10АА123
1234561
456 2
1 10
2 10
2 2
3412
Проверка чисел на наличие лишних символов
происходит путем сравнения каждого символа с
созданным массивом допустимых символов.
Если ни разу не было совпадений, то символ
лишний.

4.

Алгоритм решения задачи
21
ОПРЕДЕЛЕНИЕ ПАР ЧИСЕЛ
В ФАЙЛЕ
МИНИМАЛЬНОЙ
С/С
По
условию стоит
сравнить числа
Необходимо
удостовериться,
вчто
2..36
однакочисла
не каждое
дляс/с,
каждого
в
число
записать
файлеможно
найдется
пара в 2..36 с/с
Первая пара: 12 34
X:
Y:
MaxX = 2
MinC/Cx = MaxX + 1
MaxY = 4
MinC/Cy = MaxY + 1
MinC/Cx = 3
MinC/Cx = 5

5.

Алгоритм решения задачи
21
ОПРЕДЕЛЕНИЕ ПАР ЧИСЕЛ
В ФАЙЛЕ
МИНИМАЛЬНОЙ
С/С
По
условию стоит
сравнить числа
Необходимо
удостовериться,
вчто
2..36
однакочисла
не каждое
дляс/с,
каждого
в
число
записать
файлеможно
найдется
пара в 2..36 с/с
Что делать, если встретились буквы?
'A‘ = 10
'B' = 11
'C‘ = 12
'D' = 13
'E' = 14
'F' = 15
'G' = 16
'H' = 17
'I' = 18
'J' = 19
‘K' = 20
'L' = 21
'M' = 22
'N' = 23
'O' = 24
'P' = 25
'Q' = 26
'R' = 27
'S' = 28
'T' = 29
'U' = 30
'V' = 31
'W' = 32
'X' = 33
'Y' = 34
'Z' = 35

6.

Алгоритм решения задачи
3
1
2
Для перевода чисел из разных систем счисления
используем функцию stoi(x, pos, base).
ОПРЕДЕЛЕНИЕ
ЧИСЕЛС/С
ПЕРЕВОД
ЧИСЕЛПАР
В 10-УЮ
В ФАЙЛЕ
МИНИМАЛЬНОЙ
С/С
x – строка;
pos – с какого символа начинается перевод;
base – основание системы счисления.
По
условиюпереводить
стоит
сравнить
числа
Начинаем
с
Необходимо
удостовериться,
вопределенной
2..36
однако
не каждое
ранее
что
дляс/с,
каждого
числа
в
число
записать
минимальной
с/спара в 2..36 с/с
файлеможно
найдется
Начинаем с base равной найденным ранее минимальным
с/с.

7.

Алгоритм решения задачи
3
1
4
2
Для перевода чисел из разных систем счисления
используем функцию stoi(x, pos, base)
ОПРЕДЕЛЕНИЕ
СРАВНЕНИЕ
ДВУХ
ПАР
ЧИСЕЛС/С
ПЕРЕВОД
ЧИСЕЛ
ВЧИСЕЛ
10-УЮ
В ФАЙЛЕ
МИНИМАЛЬНОЙ
С/С
stoi(x, 0, 3)
stoi(y, 0, 5)
stoi(x, 0, 3)
stoi(y, 0, 6)
По
условию
стоит
сравнить
числа
Начинаем
переводить
с
Необходимо
После
перевода
удостовериться,
каждого
вопределенной
2..36
с/с,
однако
не каждое
ранее
что
числа
для
их
каждого
необходимо
числа
в
число
записать
минимальной
с/спара
файлеможно
сравнить
найдется
между
собой в 2..36 с/с
stoi(x, 0, 3)
...
stoi(x, 0, 3)
=
stoi(y, 0, 7)
...
stoi(y, 0, 36)
?

8.

Алгоритм решения задачи
3
1
4
2
Для перевода чисел из разных систем счисления
используем функцию stoi(x, pos, base)
ОПРЕДЕЛЕНИЕ
СРАВНЕНИЕ
ДВУХ
ПАР
ЧИСЕЛС/С
ПЕРЕВОД
ЧИСЕЛ
ВЧИСЕЛ
10-УЮ
В ФАЙЛЕ
МИНИМАЛЬНОЙ
С/С
stoi(x, 0, 4)
stoi(y, 0, 5)
stoi(x, 0, 4)
stoi(y, 0, 6)
По
условию
стоит
сравнить
числа
Начинаем
переводить
с
Необходимо
После
перевода
удостовериться,
каждого
вопределенной
2..36
с/с,
однако
не каждое
ранее
что
числа
для
их
каждого
необходимо
числа
в
число
записать
минимальной
с/спара
файлеможно
сравнить
найдется
между
собой в 2..36 с/с
stoi(x, 0, 4)
...
stoi(x, 0, 4)
=
stoi(y, 0, 7)
...
stoi(y, 0, 36)
?

9.

Алгоритм решения задачи
3
1
4
2
Для перевода чисел из разных систем счисления
используем функцию stoi(x, pos, base)
ОПРЕДЕЛЕНИЕ
СРАВНЕНИЕ
ДВУХ
ПАР
ЧИСЕЛС/С
ПЕРЕВОД
ЧИСЕЛ
ВЧИСЕЛ
10-УЮ
В ФАЙЛЕ
МИНИМАЛЬНОЙ
С/С
stoi(x, 0, 36)
stoi(y, 0, 5)
stoi(x, 0, 36)
stoi(y, 0, 6)
По
условию
стоит
сравнить
числа
Начинаем
переводить
с
Необходимо
После
перевода
удостовериться,
каждого
вопределенной
2..36
с/с,
однако
не каждое
ранее
что
числа
для
их
каждого
необходимо
числа
в
число
записать
минимальной
с/спара
файлеможно
сравнить
найдется
между
собой в 2..36 с/с
stoi(x, 0, 36)
...
stoi(x, 0, 36)
=
stoi(y, 0, 7)
...
stoi(y, 0, 36)
?

10.

Алгоритм решения задачи
54
Первая пара: 12 34
MinSum = 73,так как максимальная сумма оснований
может быть равна 72 (36+36)
СРАВНЕНИЕ ДВУХ ЧИСЕЛ
НАХОЖДЕНИЕ
МИНИМАЛЬНОЙ
СУММЫ
Если
после сравнения числа
Stoi(x, 0, 17) == stoi(y, 0, 5): true
MinSum = 17 + 5 = 22
После перевода каждого
оказались
равны, то запоминаем
числа их необходимо
b1+b2
и сравниваем
значение со
сравнить
между собой
следующей суммой
Также запоминаем сами значения оснований для
вывода

11.

Алгоритм решения задачи
5
6
4
СРАВНЕНИЕ
ДВУХ ЧИСЕЛ
ВЫВОД
РЕЗУЛЬТАТА
В ФАЙЛ
НАХОЖДЕНИЕ
МИНИМАЛЬНОЙ
СУММЫ
Если
после сравнения числа
После перевода
каждого
Проверяем
наличие
совпадений
оказались
равны,
то запоминаем
числа их
необходимо
среди
пары
и выводим
b1+b2
и сравниваем
значение со
сравнить
между
результат
в файл собой
следующей суммой
1) Нашлись такие основания с/с, при которых X = Y
2) Среди всех перебранных вариантов X ≠ Y
Проверить какой случай произошел у взятой пары
чисел можно проверить по тому, изменилась ли
переменная MinSum.
РЕЗУЛЬТАТ: 12(с/с17)=34(с/с5)

12.

Тестирование
программы №1
Проведем тестирование
программы в случаях, когда
ошибок некорректного ввода не
обнаружено.
Проверить достоверность
результатов можно переводя числа
из найденных с/с.
ВХОДНОЙ ФАЙЛ:
12 5
1FC 6
10 2
ОЖИДАЕМЫЙ РЕЗУЛЬТАТ:
12(с/с3)=5(с/с6)
1FC не эквивалентно 6 в любой
системе счисления 2..36
10(с/с2)=2(с/с3)
РЕЗУЛЬТАТ,
ПОЛУЧЕННЫЙ
ТЕСТИРОВАНИИ ПРОГРАММЫ:
ПРИ

13.

Тестирование
программы №2
Проведем тестирование
программы в случаях, когда
ошибок некорректного ввода не
обнаружено.
Проверить достоверность
результатов можно переводя числа
из найденных с/с.
ВХОДНОЙ ФАЙЛ:
20122 455
715355 24941
ОЖИДАЕМЫЙ РЕЗУЛЬТАТ:
20122(с/с3)=455(с/с6)
715355(с/с8)=24941(с/с18)
РЕЗУЛЬТАТ,
ПОЛУЧЕННЫЙ
ТЕСТИРОВАНИИ ПРОГРАММЫ:
ПРИ

14.

Тестирование
программы №3
Проведем тестирование
программы в случаях, когда
ошибок некорректного ввода не
обнаружено.
Проверить достоверность
результатов можно переводя числа
из найденных с/с.
ВХОДНОЙ ФАЙЛ:
12 34 TY 100121 1
8
ОЖИДАЕМЫЙ РЕЗУЛЬТАТ:
12(с/с17)=34(с/с5)
TY(с/с35)=100121(с/с4)
1 не эквивалентно 8 в любой
системе счисления 2..36
РЕЗУЛЬТАТ,
ПОЛУЧЕННЫЙ
ТЕСТИРОВАНИИ ПРОГРАММЫ:
ПРИ

15.

Проверка на
«дурака»
Программа может преждевременно
завершить свою работу, если:
1) Файл пуст
2) Не для каждого числа есть пара
3) Хотя бы одно число содержит
лишние символы

16.

Спасибо за внимание.
English     Русский Правила