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

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

Вернуться   Форум программистов > Delphi программирование > Паскаль, Turbo Pascal, PascalABC.NET
Регистрация

Восстановить пароль
Повторная активизация e-mail

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

Ответ
 
Опции темы Поиск в этой теме
Старый 07.05.2008, 12:09   #1
veter_s_morya
ФорумчанинДжуниор
 
Аватар для veter_s_morya
 
Регистрация: 05.05.2008
Сообщений: 606
Восклицание По введенному номеру билета определить, является ли билет счастливым.

Задали простую задачу(на первый взгляд), но незнаю как ее написать.
Задача:
Счастливым билетом называется билет, у которого сумма первых трех цифр номера равна сумме последних трех цифр (билет имеет шестизначный номер). По введенному номеру билета определить, является ли билет счастливым.
Решить используя if и else!(т.к изучаю еще только азы).
------------------------------
Ум без разума –это беда!
veter_s_morya вне форума Ответить с цитированием
Старый 07.05.2008, 12:22   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Идеи есть? Как думаешь решать?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 07.05.2008, 12:27   #3
evg_m
Старожил
 
Регистрация: 20.04.2008
Сообщений: 5,526
По умолчанию

a:=123456; //число для проверки
x:=a div 100000; //первая цифра
a:=a mod 100000; //последние пять цифр
осталось получить все цифры посчитать и прверить (if)
программа — запись алгоритма на языке понятном транслятору
evg_m на форуме Ответить с цитированием
Старый 07.05.2008, 12:46   #4
Трофимов Александр
Форумчанин
 
Аватар для Трофимов Александр
 
Регистрация: 03.11.2006
Сообщений: 321
По умолчанию

programm my;
uses crt;
var
bil,i1,i2,i3,j1,j2,j3:integer;
begin
clrscr;
write('Введите номер билета);
readln (bil);
if (bil>999999) or (bil<100000) then writeln('Введён неправильный номер')
else begin
i1:=bil div 100000;// сотни тысяч
i2:=(bil - i1*100000) div 10000;//десятки тысяч без сотен тысяч
i3:=(bil - i1*100000 - i2*10000) div 1000;//тысячи без сотен и десятков тысяч
j1:=(bil - i1*100000 - i2*10000 - i3*1000) div 100;// и т.д.
j2:=(bil - i1*100000 - i2*10000 - i3*1000 - j1*100) div 10;
j3:=bil - i1*100000 - i2*10000 - i3*1000 - j1*100 - j2*10;
if (i1+i2+i3)=(j1+j2+j3) then writeln('Вы выиграли')
else writeln('Вы проиграли');
end;
readkey;
end.

Примерно так можно, но проверить не на чем.
Трофимов Александр вне форума Ответить с цитированием
Старый 07.05.2008, 12:55   #5
veter_s_morya
ФорумчанинДжуниор
 
Аватар для veter_s_morya
 
Регистрация: 05.05.2008
Сообщений: 606
По умолчанию

Трофимов Александ, твой способ отпадает, т.к должна быть одна....вобщем не так. Нашел подсказку:
Для разложения целого числа на цифры удобно применять операции: MOD и DIV. Например, если дано трехзначное число "N" ( "N" соответствует "X1X2X3" ), то цифры: X1X2X3, составляющие это число определяются блоком операторов:
X3:= N mod 10; N:= N div 10;
X2:= N mod 10; N:= N div 10; X1:= N;
Но всеравно не доходит!
------------------------------
Ум без разума –это беда!

Последний раз редактировалось veter_s_morya; 07.05.2008 в 13:03.
veter_s_morya вне форума Ответить с цитированием
Старый 07.05.2008, 14:15   #6
puporev
Старожил
 
Регистрация: 13.10.2007
Сообщений: 2,740
По умолчанию

Цитата:
X3:= N mod 10; N:= N div 10;
X2:= N mod 10; N:= N div 10; X1:= N;
Но всеравно не доходит!
. . . . . 1 цифра . . . . . . . 2 цифра . . . . . . .3 цифра
if (N div 100 000+(N div 10 000 mod 10)+(N div 1000 mod 10))=
. . . . . 4 цифра . . . . . . . 5цифра . . . . 6 цифра
=((N div 100 mod 10)+(N div 10 mod 10)+(N mod 10)) нужно писать в одну строку
then writeln ('Yes!);
puporev вне форума Ответить с цитированием
Старый 07.05.2008, 14:15   #7
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Преврати число в строку, разбей на две половины и сравни их.
НА форуме где то было уже такое.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 07.05.2008, 14:54   #8
Карась
Участник клуба
 
Аватар для Карась
 
Регистрация: 26.10.2007
Сообщений: 1,244
По умолчанию

мод и див это жёстко....

Код:
Var i, L, R : Integer;
    S : String;

Begin
Readln(S);
L := 0; R := 0;
For i := 1 To 6 Do
  Begin
    If i > 3 Then
      Begin
        R := R + StrToInt(S[i]);
        Continue;
      End;
    L := L + StrToInt(S[i])
  End;
If L = R Then Writeln('Yes') Else Writeln('No');
Readln;
End.
Умом Россию не понять, пока не выпито ноль пять,
А если выпито ноль пять всё делом кажется не хитрым,
Попытка глубже понимать уже попахивает литром...
Карась вне форума Ответить с цитированием
Старый 07.05.2008, 15:02   #9
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
StrToInt
В Паскале??? )))
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 07.05.2008, 15:23   #10
Карась
Участник клуба
 
Аватар для Карась
 
Регистрация: 26.10.2007
Сообщений: 1,244
По умолчанию

Не перевариваю этот "синий экранчик"
Консолька Делфи.

Тогда Мод и Див.....
Умом Россию не понять, пока не выпито ноль пять,
А если выпито ноль пять всё делом кажется не хитрым,
Попытка глубже понимать уже попахивает литром...
Карась вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Определить, является ли матрица магическим квадратом. drakon803 Помощь студентам 11 14.12.2011 14:29
Задача в Exel (стоимость билета в зависимости от расстояния) Phill Помощь студентам 9 30.11.2010 00:20
Найти человека по номеру мобильного 2006demon2006 Свободное общение 7 15.09.2009 12:24
Среди 20 введёных чисел определить чётные, распечатать их, определить min Spade Помощь студентам 4 15.06.2008 18:39
Определить, является ли заданная строка правильной записью вещественного числа Sergik1977 Паскаль, Turbo Pascal, PascalABC.NET 2 18.10.2007 16:53