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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 16.04.2013, 21:29   #1
Andrew5674
Пользователь
 
Регистрация: 16.04.2013
Сообщений: 19
По умолчанию Задача на Pascal ABC: Два трёхзначных числа a и b. В интервале от a до b все числа, сумма цифр которых кратна 3, выдать зеркально

Даны 2 целых трёхзначных числа: a и b. Для каждого числа в интервале от a до b, сумма цифр которого кратна трём, зеркально отразить цифры числа.
Например: 207 (2+0+7=9). 9 кратно 3. Зеркальное отражение 207 = 702
Andrew5674 вне форума Ответить с цитированием
Старый 16.04.2013, 21:43   #2
Ghost3
Ученик в c++
Форумчанин
 
Аватар для Ghost3
 
Регистрация: 28.02.2011
Сообщений: 162
По умолчанию

Я поступил бы так:

Прогонял бы числа от 100 до 999 в цикле в виде строки. Разбивал бы на цифры для проверки условия, что их сумма кратна 3м с помощью ord. Что бы с помощью ord перевести символ в число, надо записать ord(x)-48 (x - символ)

Вот например для понятности как это делается:
Код:
var
c:string;
begin
read(c);
writeln(ord(c[1])-48,ord(c[2])-48,ord(c[3])-48);
end.
Ghost3 вне форума Ответить с цитированием
Старый 16.04.2013, 21:53   #3
Andrew5674
Пользователь
 
Регистрация: 16.04.2013
Сообщений: 19
По умолчанию

вот тоже нашёл что-то, мб поможет)
Код:
var
  a, b, i : integer;
begin
  read (a, b);
  for i := a to b do
    if i mod 3 = 0 then
      writeln (i div 100 + (i div 10 mod 10) * 10 + (i mod 10) * 100);
end.
Andrew5674 вне форума Ответить с цитированием
Старый 16.04.2013, 22:25   #4
Andrew5674
Пользователь
 
Регистрация: 16.04.2013
Сообщений: 19
По умолчанию

всё я сделал
Код:
var
  a, b, i: integer;
  fr,frn:string;
begin
  writeln('введите a и b');
  read (a, b);
  for i := a to b do
    if i mod 3 = 0 then
      writeln (i div 100 + (i div 10 mod 10) * 10 + (i mod 10) * 100);
  readln(fr);
 for i:=length(fr) downto 1 do frn:=frn+fr[i];
end.
Andrew5674 вне форума Ответить с цитированием
Старый 16.04.2013, 22:39   #5
Poma][a
Новичок
Джуниор
 
Регистрация: 11.10.2011
Сообщений: 3,882
По умолчанию

Цитата:
readln(fr);
for i:=length(fr) downto 1 do frn:=frn+fr[i];
Что это? Почему это делается один раз за программу?
Poma][a вне форума Ответить с цитированием
Старый 16.04.2013, 23:00   #6
Andrew5674
Пользователь
 
Регистрация: 16.04.2013
Сообщений: 19
По умолчанию

Цитата:
Сообщение от Poma][a Посмотреть сообщение
Что это? Почему это делается один раз за программу?
блин я не то скопировал, вот конечная программа
Код:
var
  a, b, i: integer;
begin
  writeln('введите a и b');
  read (a, b);
  for i := a to b do
    if i mod 3 = 0 then
      writeln (i div 100 + (i div 10 mod 10) * 10 + (i mod 10) * 100);
end.
Andrew5674 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
C++ получить числа, сумма цифр которых = n Anya She Помощь студентам 5 05.12.2012 14:32
За один просмотр файла вывести все числа, сумма цифр которых наименьшая gylayko Помощь студентам 1 06.10.2012 20:49
Программа, которая выводит на экран все четырехзначные числа, сумма цифр которых равна 7 vitaaly Паскаль, Turbo Pascal, PascalABC.NET 3 06.02.2012 15:46
определить все двузначные числа сумма квадратов цифр которых кратна числу 15 [Pascal] mrRastom Помощь студентам 5 16.12.2010 09:47
вводим два числа, получить все меньшие n натуральные числа, квадрат суммы цифр которых равен m Sparky Помощь студентам 2 22.11.2009 21:59