Задачи по Pascal. Определить у какого числа сумма цифр больше.

Задачи по Pascal

Условие задачи :  Выводятся два случайных трехзначных числа . Определить у какого из них сумма цифр больше.

Сложность : средняя .

Пример суммы чисел :

237 : 2 + 3 + 7 = 12

Для решения задачи нам понадобиться две переменные для чисел, потом три переменные для того чтобы записать в них цифры числа , затем нужны две переменные чтобы в них занести сумму этих цифр и оператор условия if.

Для начала давайте объявим эти переменные и занесем в них случайные числа.

Помните : для того чтобы делать случайные числа каждый раз разные, необходимо прописать randomize;

Пишем :

uses crt ; 
var 
    num1 , num2 , i , j , k , sum1 , sum2 : integer
begin
randomize; {генератор случайных чисел}

num1 := 100 + random(900);
num2 := 100 + random(900);
end.

Вот эта запись :

num1 := 100 + random(900);

Позволит нам генерировать случайные числа от 100 до 999. Запомните на будущее.

Дальше нам нужно разбить каждое число на три цифры. Как мы будем это делать ? С помощью операций div и mod .

Допустим в переменной num1 у нас будет число 256. Для начала давайте возьмем его первую цифру т.е. два :

i := num1 div 100 ;

Такая запись позволит нам получить цифру 2.

Напомню : операция div возвращает нам целую часть от деления.

Дальше нам нужно получить цифру 5 .

j := num1 div 10 mod 10 ;

Вот так мы получим число 5. Как это работает. Сначала у нас делается операция div благодаря которой мы получим 25, а затем у нас выполняется операция mod которая находит остаток от деления.

И нам осталось получить последнюю цифру :

k := num1 mod 10 ;

Теперь нам осталось сложить эти цифры и получить сумму.

sum1 := i + j + k ;

Первая сумма готова, теперь точно также делаем и для второго числа , можно использовать те же переменные i , j , k .

Допустим мы получили два числа . Нам осталось только сравнить чья сумма цифр больше . Пишем :

if sum1 > sum2 then 
        writeln('Сумма цифр числа : ', num1, ' больше чем ', num2 )
else 
        if sum1 < sum2 then 
                writeln('Сумма цифр числа : ', num2, ' больше чем ', num1 )
        else writeln('Сумма цифр числа : ', num2, ' равна ', num1 ) ;

Вот и всё , но для наглядности можно вывести выше чему равна сумма цифр каждого числа .

Весь код программы :

uses crt ; 
var 
    num1 , num2 , i , j , k , sum1 , sum2 : integer ;
begin
clrscr; {очищаем экран}
randomize; {генератор случайных чисел}

num1 := 100 + random(900);
num2 := 100 + random(900);

i := num1 div 100 ;
j := num1 div 10 mod 10 ;
k := num1 mod 10 ;

sum1 := i + j + k ;

i := num2 div 100 ;
j := num2 div 10 mod 10 ;
k := num2 mod 10 ;

sum2 := i + j + k ;

writeln('Сумма цифр числа : ', num1 , ' = ' ,sum1);
writeln('Сумма цифр числа : ', num2 , ' = ' ,sum2);

if sum1 > sum2 then 
        writeln('Сумма цифр числа : ', num1, ' больше чем ', num2 )
else 
        if sum1 < sum2 then 
                writeln('Сумма цифр числа : ', num2, ' больше чем ', num1 )
        else writeln('Сумма цифр числа : ', num2, ' равна ', num1 ) ;
readln;
end.

cyber
Оцените автора
CyberLesson | Быстро освоить программирование Pascal и C++. Решение задач Pascal и C++
Добавить комментарий