Главная страница
Навигация по странице:

  • Романов Е.Л. НОВОСИБИРСК 2022 Задание Числовой ребус

  • Текст программы с комментариями

  • Числовой ребус: ПРИМЕР РИМЕР ИМЕР МЕР ЕР Р=ЗАДАЧА. ОТЧЕТ ЛАБ 1. Лабораторная работа 1 по дисциплине Информатика Арифметические задачи Группа Студенты Преподаватель Романов Е. Л


    Скачать 23.96 Kb.
    НазваниеЛабораторная работа 1 по дисциплине Информатика Арифметические задачи Группа Студенты Преподаватель Романов Е. Л
    АнкорЧисловой ребус: ПРИМЕР РИМЕР ИМЕР МЕР ЕР Р=ЗАДАЧА
    Дата03.05.2023
    Размер23.96 Kb.
    Формат файлаdocx
    Имя файлаОТЧЕТ ЛАБ 1.docx
    ТипЛабораторная работа
    #1106545

    МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ РОССИЙСКОЙ ФЕДЕРАЦИИ

    НОВОСИБИРСКИЙ ГОСУДАРСТВЕННЫЙ ТЕХНИЧЕСКИЙ УНИВЕРСТИЕТ

    Лабораторная работа №1 по дисциплине «Информатика»

    Арифметические задачи

    Группа:

    Студенты:

    Преподаватель: Романов Е.Л.

    НОВОСИБИРСК 2022

    Задание


    Числовой ребус: ПРИМЕР+РИМЕР+ИМЕР+МЕР+ЕР+Р=ЗАДАЧА

    Теоретические сведения


    Нужно найти такие цифры, соответствующие буквам, чтобы выполнялось равенство. Каждой букве соответствует одна цифра, все буквы - это различные цифры.

    Проектирование программы


    Обсуждение основных идей алгоритма

    Идея: Для нахождения значений, соответствующих буквам, можно использовать перебор всех цифр для каждой буквы. Но при этом учитывать, чтобы все цифры были различны. Также нужно учитывать что буквы П, Р, И, М, Е, З не могут быть равны нулю, потому что с них начинаются числа.

    «Составные части» программы:

    • Цикл перебора цифр для букв П, Р, И, М, Е, З:

    for (num_P = 1; num_P < 10; num_P++)

    • Цикл перебора цифр для букв А, Д, Ч:

    for (num_A = 0; num_A < 10; num_A++)

    • Проверка на различность цифр:

    if (num_N == num_PI || num_N == num_P) continue;

    • Расчет правой и левой части равенства:

    summa = num_PI * pow(10, 5) + num_P * pow(10, 4) * 2 + num_N * pow(10, 3) * 3 + num_M * pow(10, 2) * 4 + num_E * 10 * 5 + num_P * 6; // расчет левой части уравнения

    otvet = num_3 * pow(10, 5) + num_A * pow(10, 4) + num_D * pow(10, 3) + num_A * pow(10, 2) + num_4 * 10 + num_A; // расчет правой части уравнения

    • Вывод букв и соответствующих им цифр:

    printf("n = %d\nP = %d\nN = %d\nM = %d\nE = %d\n3 = %d\nA = %d\nD = %d\n4 = %d\n", num_PI, num_P, num_N, num_M, num_E, num_3, num_A, num_D, num_4);

    Переменные:

    num_PI – буква П

    num_P – буква Р

    num_N – буква Н

    num_M – буква М

    num_E – буква У

    num_3 – буква З

    num_A – буква А

    num_D – буква Д

    num_4 – буква Ч

    otvet – значение правой части равенства

    summa – значение левой части равенства

    Текст программы с комментариями

    #include

    #include


    int main(){

    int num_PI, num_P, num_N, num_M, num_E, num_3, num_A, num_D, num_4; // Инициализация переменых для букв

    int otvet, summa; // Инициализация переменых для проверки условия
    // Перебор значения цифр для букв

    for (num_PI = 1; num_PI < 10; num_PI++){ . . . }




    return 0;

    }

    Пример работы программы

    П = 8

    Р = 5

    И = 1

    М = 7

    Е = 4

    З = 9

    А = 0

    Д = 6

    Ч = 3

    851745 + 51745 + 1745 + 745 + 45 + 5 = 906030


    .




    написать администратору сайта