Up

7 класс. Реализация алгоритмов работы с целочисленными данными

 

Тема урока: Реализация алгоритмов работы с целочисленными данными

Цель урока: развить и закрепить навыки составления программ на Си++ с целочисленными данными

Целочисленный тип данных

При решении некоторых задач подразумевается, что нужно использовать целочисленный тип данных. Например, в задаче требуется найти порядковый номер или количество предметов. Для этого в Си++ используется тип данных int.

С помощью переменных этого типа можно задавать целые числа из диапазона от –2 147 483 648 до 2 147 483 647. Для указанного типа данных определены следующие операции:

Математические операции

Запись в Си++

 + (сложение)

+

 – (вычитание)

  (умножение)

*

 целочисленное деление

/

 нахождение остатка

%

Для организации вычислений c целыми числами определены операции / (целая часть от деления) и % (остаток от деления). Эти операции имеют такой же приоритет, как и операции деления и умножения. Для целочисленных данных определена операция деления как результат нахождения целой части от деления.

Пример 1. Даны два целых числа a и b. Напишем программу, которая находит целую часть от деления a на b и остаток от деления a на b.

Этапы выполнения задания:

1. Определение исходных данных: переменные a и b.

2. Определение результатов: переменные c (целочисленное частное) и d (остаток).

3. Алгоритм решения задачи:

    3.1. Ввод исходных данных.

    3.2. Целочисленное частное находим как результат операции: a / b, остаток — a % b.

    3.3. Вывод результата.

4. Описание переменных.

Все переменные, определенные для решения задачи, имеют тип int.

Значение, которое выдает в качестве результата операция %, может отличатся от математического определения остатка (в математике под остатком понимают неотрицательное число). Если остаток не равен нулю, то знак числа, которое является результатом операции %, определяется знаком делимого.

Чтобы лучше понять последнее пояснение, рассмотрим таблицу получения результатов деления двух целочисленных данных:

первое число Второе число Целая часть о деления остаток от деления
21 5 4 1
-21 5 -4 -1
21 -5 -4 1
-21 -5 4 -1

5. Программа:

#include <iostream> 
using namespace std; 

int main() { 
    int a, b, c, d; 
    cout << "a = "; 
    cin >> a; 
    cout << "b = "; 
    cin >> b; 
    c = a / b; 
    d = a % b; 
    cout << "Celaya chast ot deleniya: " << c << endl; 
    cout << "Ostatok ot deleniya: " << d << endl; 
    return 0; 
}

6. Тестирование программы. Запустите программу и введите значения a = 21, b = 5. Результат работы программы должен быть следующим:

7. Другие данные для проверки спланируйте самостоятельно.

Использование целочисленных данных для решения задач

Пример 2. Васин таймер показывает время только в секундах. Напишем для Васи программу, которая переведет время в минуты и секунды.

Этапы выполнения задания:

1. Определение исходных данных: переменная с (время в секундах).

2. Определение результатов: переменные m (полное количество минут) и s (остаток секунд).

3. Алгоритм решения задачи:

    3.1. Ввод исходных данных.

    3.2. Для нахождения полного числа минут нужно найти целую часть от деления исходного числа секунд на 60.

    3.3. Оставшиеся секунды можно найти как остаток от деления исходного числа секунд на 60.

    3.4. Вывод результата.

4. Описание переменных.

Все переменные, определенные для решения задачи, имеют тип int.

5. Программа имеет вид:

#include <iostream>
using namespace std; 
int main() { 
    int c, m, s; 
    cout << "c = "; 
    cin >> c; //минуты 
    m = c / 60; //секунды 
    s = c % 60; 
    cout << m << ":" << s << endl; 
    return 0; 
}

6. Тестирование программы. Запустите программу и введите значения c = 137. Результат работы программы должен быть следующим:



Пример 3Напишем программу для решения задачи.

Задано двузначное число. Необходимо поменять местами первую и вторую цифры числа.

Этапы выполнения задания:

1. Определение исходных данных: переменная а (исходное число).

2. Определение результатов: переменная b (преобразованное число).

3. Алгоритм решения задачи:

    3.1. Ввод исходных данных.

    3.2. Для преобразования числа необходимо выполнить следующие действия:

        а) в переменной a1 сохраним вторую цифру числа. Для выделения цифры из числа нужно найти остаток от деления исходного числа на 10 (10);

        б) для выделения первой цифры (переменная a2) нужно найти целую часть от деления числа на 10;

        в) искомое число b получим, если умножим a1 на десять и к полученному произведению прибавим значение переменной a2.

На примере объясню что происходит в этих действиях. Допустим, с клавиатуры набрали число 28. (а = 28)

        а) а1 = а % 10 = 28 % 10 = 8.

        б) а2 = а / 10 = 28 / 10 = 2.

        в) b = a1*10 + a2 = 8*10 + 2 = 82.

    3.3. Вывод результата.

4. Описание переменных.

Все переменные, определенные для решения задачи, имеют тип int.

5. Программа:

#include <iostream>
using namespace std;

int main()
{
    int a, b, a1, a2;
    cout << "a = ";
    cin >> a;
    //выделение последней цифры
    a1 = a / 10;
    //выделение первой цифры
    a2 = a % 10;
    b = a1 * 10 + a2;
    cout << "result: " << b << endl;
    return 0;
}

6. Тестирование программы. Запустите программу и введите значения a = 25. 
Результат работы программы должен быть следующим:

Пример 4В исторической книге, которую читала Таня, длина отреза ткани измерялась в локтях. Напишем для Тани программу, которая переведет локти в метры и сантиметры.

Этапы выполнения задания:

1. Определение исходных данных: переменная l (локти).

2. Определение результатов: переменные m (метры) и s (сантиметры).

3. Алгоритм решения задачи:

    3.1. Ввод исходных данных.

    3.2. Сначала переведем локти в сантиметры. Для этого количество локтей нужно умножить на 45 и сохранить значение в переменной x.

    3.3. Для определения числа метров найдем целую часть от деления x на 100.

    3.4. Оставшиеся сантиметры можно найти как остаток от деления x на 100.

    3.5. Вывод результата.

4. Описание переменных:

Все переменные, определенные для решения задачи, имеют тип int.

5. Программа:

#include <iostream>
using namespace std;
int main() { 
    int l , m , s , x; 
    cout << "l = "; 
    cin >> l; 
    x = l * 45;
//метры 
    m = x / 100;
//сантиметры 
    s = x % 60; 
    cout << l << " loktey" << endl; 
    cout << m << " m " << s << " sm" << endl; 
    return 0; 
}

6. Тестируем при данном значении локтей, равном 7. Результат:


Чтобы проверить свои теоретические знания предлагаю пройти тест (пройти по ссылке).


Упражнения:

    1 Вася написал программу, которая переводит длину из метров в километры и метры. Но он не может решить, где нужно использовать "/", а где "%". Помогите ему. Скопируйте код в текст будущей программы внесите нужные знаки.

#include <iostream>
using namespace std;
int main()
{
    int d, m, k; 
    cout << "d = "; 
    cin >> cin >> cin >> d; 
    k = d 1000; 
    m = d 1000; 
    cout << d << " m ="; 
    cout << k << " km " << m << " m" << endl;
    return 0;
}


    2 Ответьте на вопросы для примера 3.
    1. При каких значениях переменной a значение переменной b будет таким же?
    2. Всегда ли в результате выполнения программы мы будем получать двузначное число? Почему?
    3. Попробуйте ввести трехзначное число (например, 125). Объясните получившийся результат.

    3 Напишите программы для решения задач. 

            Используйте операции "/" и "%".

    1. Задано двузначное число. Найдите среднее арифметическое цифр числа.
    2. Задано двузначное число. Найдите разность между количеством десятков и единиц.
    3. Дана масса в граммах. Переведите ее в килограммы и граммы.
    4. Площадь участка измеряется в арах. Найдите количество полных км2.
  1. 4 Для старорусской системы весов известны следующие соотношения:

    1 берковец = 10 пудов = 400 фунтов = 38 400 золотников.

    Напишите программу, которая переводит массу, заданную в золотниках, в фунты, пуды и берковцы.

Комментариев нет:

Отправить комментарий