Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 22.02.2010, 17:11   #1
pionerka
Пользователь
 
Аватар для pionerka
 
Регистрация: 16.09.2009
Сообщений: 35
Стрелка математические действия с числом

Здравствуйте,ребята.Очень нужна ваша помощь в решении задачи.
Дано число,определить:
1.равна ли сумма 2-х первых его цифр сумме 2-х его последних.
2.кратна ли 3-м сумма его цифр.
3.кратна ли 4-м произведениее его цифр.
Пожалуйста,помогите с решением или напишите с чего надо начать.Задачу можно решить на Бейсике либо на Паскале.Заранее спасибо.
тяжела и неказиста жизнь простого программиста
pionerka вне форума Ответить с цитированием
Старый 22.02.2010, 17:31   #2
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,833
По умолчанию

div, mod вам в руки
p51x вне форума Ответить с цитированием
Старый 22.02.2010, 18:23   #3
pionerka
Пользователь
 
Аватар для pionerka
 
Регистрация: 16.09.2009
Сообщений: 35
Радость

это я знаю.а можно по подробнее?
тяжела и неказиста жизнь простого программиста
pionerka вне форума Ответить с цитированием
Старый 22.02.2010, 19:13   #4
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,833
По умолчанию

В чем конкретно проблемы?
p51x вне форума Ответить с цитированием
Старый 23.02.2010, 12:33   #5
pionerka
Пользователь
 
Аватар для pionerka
 
Регистрация: 16.09.2009
Сообщений: 35
По умолчанию

проблема в том,что я не могу понять,как надо разделить число на цифры?и как потом организовать математические действия с ними
тяжела и неказиста жизнь простого программиста
pionerka вне форума Ответить с цитированием
Старый 23.02.2010, 12:37   #6
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Например ты число превращаешь в строку (процедура Str).
Далее каждый элемент строки (а это по сути цифры) превращаешь в число (процедура Val)
Посмотри их описание в хелпе паскаля там и пример же найдешь.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 23.02.2010, 12:38   #7
Namolem
Oo
Форумчанин
 
Аватар для Namolem
 
Регистрация: 10.10.2009
Сообщений: 350
По умолчанию

a = 345; // 345
a mod 10; // 5
a := a div 10; // 34

выполняется в цикле, пока А не станет равным нулю
Namolem вне форума Ответить с цитированием
Старый 23.02.2010, 13:59   #8
Sanprof
Форумчанин
 
Аватар для Sanprof
 
Регистрация: 28.01.2008
Сообщений: 267
По умолчанию

Цитата:
Сообщение от Stilet Посмотреть сообщение
Например ты число превращаешь в строку (процедура Str).
Далее каждый элемент строки (а это по сути цифры) превращаешь в число (процедура Val)
Посмотри их описание в хелпе паскаля там и пример же найдешь.
Правильно человек подсказывает, допустим у тебя есть число 123456789
Код:
var Str : String;
      len : Integer;
      a : array of integer;

...

Str := inttostr(123456789);//преобразуем в строку
len := length(Str);//получаем длину (количество цифр)
setlength(a, len-1);//образмериваем массив
   for i := 0 to len-1 do
      a[i] := strtoint(copy(Str,i+1,1));//присваиваем і-му элементу массива 'а' каждую цифру
В итоге ты получаешь массив состоящий из цифр твоего числа, ну а дальше можешь проводить любые операции с каждым элементом массива, тоесть с каждой цифрой.
Не забываем говорить спасибо за помощь - это ведь так приятно
Sanprof вне форума Ответить с цитированием
Старый 23.02.2010, 14:37   #9
Sanprof
Форумчанин
 
Аватар для Sanprof
 
Регистрация: 28.01.2008
Сообщений: 267
По умолчанию

Да, еще добавлю если будут сложности с твоими 3-мя поставленными задачами, как бы я их решил
Код:
var Str : String;
      len : Integer;
      a   : array of integer;
      num1,num2 : integer;

...

Str := inttostr(123456789);//преобразуем в строку
len := length(Str);//получаем длину (количество цифр)
setlength(a, len-1);//образмериваем массив
   for i := 0 to len-1 do
      a[i] := strtoint(copy(Str,i+1,1));//присваиваем і-му элементу массива 'а' каждую цифру
// первая задача
num1 := a[0] + a[1];//суммая первого и второго числа
num2 := a[len-2] + a[len-1];//сумма предпоследнего и последнего
  if num1 = num2 then //если равны
    showmessage('Сумма первых двух чисел равна сумме двух последних') else
    showmessage('Сумма первых двух чисел не равна сумме двух последних');
//вторая задача
num1 := 0;
num2 := 0;
for i := 0 to len-1 do
   num1 := num1 + a[i];//получаем сумму всех чисел
num2 := num1 div 3;
num2 := num2*3;//здесь получим либо не получим обратно число в num1 
  if num1 = num2 then //если равны
    showmessage('Сумма цифр числа '+Str+' кратна 3-м') else
    showmessage('Сумма цифр числа '+Str+' не кратна 3-м');
//третья задача
num1 := 0;
num2 := 0;
for i := 0 to len-1 do
   num1 := num1*a[i];//получаем произведение всех чисел
num2 := num1 div 4;
num2 := num2*4;
if num1 = num2 then //если равны
    showmessage('Произведение цифр числа '+Str+' кратна 4-м') else
    showmessage('Произведение цифр числа '+Str+' не кратна 4-м');
Это пример, а дальше можешь его преобразовать по своим нуждам.
Не забываем говорить спасибо за помощь - это ведь так приятно
Sanprof вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Математические формулы в Delphi Botanik1987 Помощь студентам 10 25.02.2017 19:09
Математические задачи. Руслан111 Помощь студентам 1 11.02.2010 11:55
Математические операции Juggernaut Общие вопросы Delphi 6 22.04.2009 10:34
Математические пакеты yudjin Общие вопросы Delphi 0 03.05.2008 09:02