Форум программистов, компьютерный форум, киберфорум
Delphi для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.92/13: Рейтинг темы: голосов - 13, средняя оценка - 4.92
0 / 0 / 0
Регистрация: 07.06.2013
Сообщений: 50
1

Реализовать программу «Считалочка»

22.02.2016, 15:01. Показов 2593. Ответов 7
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
С помощью списков реализовать программу «Считалочка». N ребят расположены по кругу. Начав отсчет от первого, удаляют каждого к-ого, смыкая при этом круг. Определить порядок удаления ребят из круга.

1. N=10
2. N=15
3. N=20
4. N=25
5. N=30

Эту же задачу необходимо исследовать для различных значений N от 1 до 64, составив таблицу оставшихся ребят (t – номер оставшегося ребенка).
Заранее благодарю за помощь)
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
22.02.2016, 15:01
Ответы с готовыми решениями:

Реализовать программу "Считалочка" . Списки
С помощью списков реализовать программу «Считалочка». N ребят расположены по кругу. Начав отсчет от...

Написать программу считалочка
Народ помогите написать программу считалочка, суть самой программы - написать программу в которой...

Считалочка
Задание 1 Считалочка Чтобы выбрать дежурного, учитель физкультуры придумал такую игру. Ученики...

Считалочка
В круге стоят ученики кадий из них имеет свой номер от 1 до 10 их начинают считать начиная с...

7
88 / 84 / 43
Регистрация: 02.05.2015
Сообщений: 766
22.02.2016, 16:27 2
с каким шагом изымать ребят?
ну например каждого второго третьего десятого сотого?
0
0 / 0 / 0
Регистрация: 07.06.2013
Сообщений: 50
22.02.2016, 16:34  [ТС] 3
каждого k-го т.е. я так понимаю число вводиться с клавиатуры
0
88 / 84 / 43
Регистрация: 02.05.2015
Сообщений: 766
22.02.2016, 17:10 4
Лучший ответ Сообщение было отмечено Kenguru как решение

Решение

Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
procedure TForm1.btn1Click(Sender: TObject);
const
  n=64;
  k=3;
var
  i,count,tmp:integer;
  mas:array[1..n] of integer;
  s:string;
  flag:boolean;
 
begin
  for i:=1 to n do mas[i]:=i;
    tmp:=0;
    flag:=true;
    i:=1;
    count:=0;
  while flag do
    begin
      if mas[i]>0 then
        begin
          inc(count);
          if count=k then
            begin
              s:=s+inttostr(mas[i])+', ';
              count:=0;
              mas[i]:=-1;
            end;
 
 
 
 
        end;    if mas[i]<0 then inc(tmp);
          inc(i);
          if i>=n then
            begin
              i:=1;
              if tmp=n-1 then flag:=false else tmp:=0;
            end;
    end;
    for i:=1 to n do if mas[i]>0 then s:=s+inttostr(mas[i]);
    showmessage(s);
end;
Добавлено через 1 минуту
можешь вынести k и n в глобальные переменные и удалить из констант, и тогда можешь считывать их из эдитов к примеру
1
Почетный модератор
64300 / 47595 / 32743
Регистрация: 18.05.2008
Сообщений: 115,181
22.02.2016, 17:12 5
Цитата Сообщение от Kenguru Посмотреть сообщение
С помощью списков реализовать программу «Считалочка».
Нужно создать кольцевой список.
0
88 / 84 / 43
Регистрация: 02.05.2015
Сообщений: 766
22.02.2016, 17:21 6
Лучший ответ Сообщение было отмечено Kenguru как решение

Решение

Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
var
  Form1: TForm1;
  function func(k,n:integer):string;
 
implementation
 
{$R *.dfm}
 
function func(k,n:integer):string;
var
  i,count,tmp:integer;
  mas:array of integer;
  s:string;
  flag:boolean;
begin
  setlength(mas,n);
  for i:=1 to n do mas[i]:=i;
    tmp:=0;
    flag:=true;
    i:=1;
    count:=0;
  while flag do
    begin
      if mas[i]>0 then
        begin
          inc(count);
          if count=k then
            begin
              s:=s+inttostr(mas[i])+', ';
              count:=0;
              mas[i]:=-1;
            end;
        end;
      if mas[i]<0 then inc(tmp);
      inc(i);
      if i>=n then
      begin
        i:=1;
        if tmp=n-1 then flag:=false else tmp:=0;
      end;
    end;
    for i:=1 to n do if mas[i]>0 then s:=s+inttostr(mas[i]);
    result:= s;
end;
 
procedure TForm1.btn1Click(Sender: TObject);
begin
showmessage(func(strtoint(edt1.Text),strtoint(edt2.Text)));
end;
Добавлено через 1 минуту
Цитата Сообщение от Puporev Посмотреть сообщение
Нужно создать кольцевой список.
извиняюсь, упустил
1
0 / 0 / 0
Регистрация: 22.02.2017
Сообщений: 1
01.03.2017, 16:42 7
Ваша программа не работает с определёнными числами, такими как 7, 9, 10, 55...Я не могу понять в чём дело. Может вы объясните, пусть прошёл уже год?
0
88 / 84 / 43
Регистрация: 02.05.2015
Сообщений: 766
01.03.2017, 18:14 8
Цитата Сообщение от Yasenka99 Посмотреть сообщение
Ваша программа не работает с определёнными числами, такими как 7, 9, 10, 55...Я не могу понять в чём дело. Может вы объясните, пусть прошёл уже год?
эм.. вроде работает.. нет? там вообще реализовать надо было кольцевым списком, мой вариант, хоть и даёт тот же результат, но он без списка реализован.

Добавлено через 46 секунд
что именно не так?
0
01.03.2017, 18:14
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
01.03.2017, 18:14
Помогаю со студенческими работами здесь

Считалочка
Задание 1 Считалочка Чтобы выбрать дежурного, учитель физкультуры придумал такую игру. Ученики...

Считалочка
Сделать задачу используя модули. Даны натуральные n, m. Предпологается, что n человек встают в...

Считалочка.
Помогите написать прогу: Вводится n детей, ввести их имена, сформировать в виде кольцевоаго...

Считалочка
Реализовать программу Считалочка с выводом выбывающих участников. Вот мой код, но он некоректно...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru