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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 10.10.2012, 14:49   #1
Chaang
Новичок
Джуниор
 
Регистрация: 10.10.2012
Сообщений: 5
По умолчанию программирование 10 класс

1. «Знаменатель – 100 баллов».
Для сложения трех обыкновенных дробей со знаменателями a, b и c (1<a,b,c≤1200) Даше необходимо найти наименьший общий знаменатель, который может быть большим, но не больше 231–1 = 2147483647. Помогите ей, составьте программу, которая будет находить его.
Ваша программа должна
• Запросить три натуральных числа – знаменатели трех дробей (1<a,b,c≤1200);
• Вычислит и выведет на экран наименьший общий знаменатель.
Пример:
Знаменатели 4, 6, 18
Наименьший общий знаменатель 36


2. «Сдвиг – 100 баллов».
К цифрам натурального числа a (a > 9) применяется операция циклический сдвиг влево. Пример применения этой операции к числу 1730382 показана на рисунке.

1 7 3 0 3 8 2


7 3 0 3 8 2 1

Из числа 1730382 получено число 7303821. К этому числу опять можно применить сдвиг. К полученному тоже. Получается последовательность чисел 1730382, 7303821, 3038217, 0382173, 3821730, 8217303, 2173038, 1730382, ….
Составьте программу, которая
• Читает натуральное число a, которое может содержать до 100 цифр;
• Находит и выводит на экран наибольшее число, получаемой сдвигами.
Примеры:
Исходное число 1730382
Наибольшее число 8217303


3. «Кенгуру – 100 баллов».
Суперкенгуру может прыгать по прямой вправо и влево и совершать гигантские прыжки. Длина его первого прыжка составляет 1 м, второго — 2 м, третьего — 4 м и так далее (длина каждого прыжка всегда в два раза больше, чем предыдущего). Через какое минимальное количество прыжков суперкенгуру окажется на расстоянии d метров от исходной точки O?
Программа должна
• Запросить расстояние d (натуральное число, 0 < d < 2147483647 = 231–1;
• Найти и вывести на экран минимальное количество прыжков для попадания в точку на расстоянии d или сообщить, что это невозможно.
Примеры:
Расстояние 16 Невозможно
Расстояние 17 Минимальное число шагов 5
Примечание. Имеется в виду последовательность прыжков –1–2–4+8+16, дающая расстояние 17.

Примечание. Время прохождения одного теста во всех задачах – 1 секунда.
Chaang вне форума Ответить с цитированием
Старый 10.10.2012, 16:20   #2
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,341
По умолчанию

Отличные задачки, успехов в решении
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
BDA вне форума Ответить с цитированием
Старый 10.10.2012, 16:40   #3
Chaang
Новичок
Джуниор
 
Регистрация: 10.10.2012
Сообщений: 5
По умолчанию

Цитата:
Сообщение от BDA Посмотреть сообщение
Отличные задачки, успехов в решении
Спасибо! Но я рассчитывал на вашу помощь!
Chaang вне форума Ответить с цитированием
Старый 10.10.2012, 16:53   #4
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,341
По умолчанию

Ну тут есть несколько путей:
1) Вы выкладываете свои наработки, идеи и получаете советы по исправлению ошибок и улучшению алгоритма решения.
2) Вы заказываете решение у фрилансера, который с радостью решит задачу за деньги.
3) Может появиться тот, кого задача заинтересует, или кто хочет попрактиковаться (это я про badnum23), или просто добрый человек с хорошим настроением

20:00 Update С миру по нитке
Очень заинтересовала последняя задачка
Код:
uses Math;
var
d: longint;
BEGIN
    readln(d);
    if d mod 2 = 0 then
        writeln('No')
    else
        writeln(' Count: ', ceil(ln(d + 1) / ln(2)));
    readln;
END.
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )

Последний раз редактировалось BDA; 10.10.2012 в 19:57.
BDA вне форума Ответить с цитированием
Старый 10.10.2012, 16:57   #5
badnum23
Пользователь
 
Регистрация: 10.10.2012
Сообщений: 22
По умолчанию

Решение второй задачи:
Код:
program Project2;

type
  TArray = array [1..100] of Byte;
var
  a: TArray;
  lenA, i, j, max, j1: Integer;
  t: Boolean;

begin
  Randomize;
  lenA := random(90) + 10;
//lenA := 7;

  {a[1] := 1;
  a[2] := 7;
  a[3] := 3;
  a[4] := 0;
  a[5] := 3;
  a[6] := 8;
  a[7] := 2; }

  for i := 1 to lenA do
  begin
    a[i] := random(9)+1;
    write(a[i]);
  end;

  writeln;

  max := 1;
  for i := 2 to lenA do
    if a[i] > a[max] then
      max := i
    else if a[i] = a[max] then
    begin
      j := i+1;
      if j > lenA then j := 1;
      j1 := max+1;
      t := true;
      while t do
      begin
        if a[j] > a[j1] then
        begin
          max := i;
          t := false;
        end
        else if a[j] = a[j1] then
        begin
          inc(j);
          inc(j1);
          if (j > lenA) then
            j := 1;
          if (j1 > lenA) then
            j1 := 1;
        end
        else
          t := false;

      end;
    end;

  i := max;
  while i <> max-1 do
  begin
    write(a[i]);
    inc(i);
    if i > lenA then i := 1;
  end;
  writeLn(a[max-1]);
  readln;

end.
Если требуется, то вы сможете переделать под ввод из файла сами.

Последний раз редактировалось badnum23; 10.10.2012 в 17:02.
badnum23 вне форума Ответить с цитированием
Старый 10.10.2012, 17:06   #6
Chaang
Новичок
Джуниор
 
Регистрация: 10.10.2012
Сообщений: 5
По умолчанию

Но к сожалению мы не проходили программирование в 9 классе, а в 10 вообще нет информатики, и я с программированием не знаком!
Chaang вне форума Ответить с цитированием
Старый 10.10.2012, 18:12   #7
Mad_Cat
Made In USSR!
Старожил
 
Аватар для Mad_Cat
 
Регистрация: 01.09.2010
Сообщений: 3,657
По умолчанию

1
Цитата:
1. «Знаменатель – 100 баллов».
Для сложения трех обыкновенных дробей со знаменателями a, b и c (1<a,b,c≤1200) Даше необходимо найти наименьший общий знаменатель, который может быть большим, но не больше 231–1 = 2147483647. Помогите ей, составьте программу, которая будет находить его.
Ваша программа должна
• Запросить три натуральных числа – знаменатели трех дробей (1<a,b,c≤1200);
• Вычислит и выведет на экран наименьший общий знаменатель.
Код:
var a,b,c:longint;

function NOD(x,y:longint):longint;
 begin
  if x<>0 then NOD:= NOD(y mod x,x) else NOD:= y;
 end;

function NOK(x,y:longint):longint;
 begin
  NOK:= (x div NOD(x,y)) * y;
 end;

Begin
 Write('Введите a , b и с: ');
 Readln(a,b,c);
 Writeln('Общий знаменатель ',a,' , ',b,' и ',c, '= ', NOK(c,NOK(a,b)));
Readln;
end.
Цитата:
Введите a , b и с: 4 6 18
Общий знаменатель 4 , 6 и 18= 36
"...В жизни я встречал друзей и врагов.В жизни много всего перевидал.Солнце тело мое жгло, ветер волосы трепал,но я смысла жизни так и не узнал..."
(c) Юрий Клинских aka "Хой"
Mad_Cat вне форума Ответить с цитированием
Старый 10.10.2012, 20:31   #8
Chaang
Новичок
Джуниор
 
Регистрация: 10.10.2012
Сообщений: 5
По умолчанию

Всем спасибо!
Chaang вне форума Ответить с цитированием
Старый 11.10.2012, 13:55   #9
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Цитата:
Сообщение от badnum23
Решение второй задачи:
badnum23, а если все цифры одинаковые? будем уходить в бесконечный цикл?


Цитата:
Сообщение от BDA
Очень заинтересовала последняя задачка
Красиво! если не секрет, расскажите, плиз, как Вы пришли к этому решению?..
я бы в жизни не догадался! начал бы переборами играться...
Serge_Bliznykov вне форума Ответить с цитированием
Старый 11.10.2012, 14:14   #10
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,341
По умолчанию

Serge_Bliznykov, сначала подумывал о рекурсии, но потом...
Получение формулы:
Прыжок (количество) - Варианты расстояний
1) 1
2) 1, 3
3) 1, 3, 5, 7
4) 1, 3, 5, 7, 9, 11, 13, 15
и т.д.
k-ый прыжок - максимальное расстояние 2^k - 1
Вводимое расстояние не может быть четным и должно быть меньше или равно 2^k - 1 (d <= 2^k -1).
Осталось выразить k.
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
BDA вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Cоздать класс жидкость. определить конструкторы деструкторы и функцию печати. создать публик производный класс. (С++) Динар Габбасов Помощь студентам 0 28.05.2012 18:44
Добавить класс в проект2,похожий на класс из проекта1!оба проекта есть! xeops C# (си шарп) 0 15.05.2012 20:31
Класс запускает поток, который заполняет этот класс. Обмен класс <=> поток. Человек_Борща Общие вопросы Delphi 8 27.02.2012 23:24
Программирование или web-программирование? Дмитрий Батогов Помощь студентам 3 23.06.2011 14:14
Описать класс-родитель и класс-потомок. Delphi 7 Andrew_M Помощь студентам 0 15.01.2011 14:42