Вернуться   D3Scene.Ru Софт портал игр | Хаки | Проги | Статьи > Другое > Информационные технологии > Программирование > С++/C#
Присоединяйся к нам



Ответ
 
Опции темы Опции просмотра
Старый 01.12.2013, 16:23   #1
Местный
 
Аватар для Эрлан
 
Регистрация: 04.02.2013
Адрес: Забайкальск
Сообщений: 79
Репутация: 22
Отправить сообщение для Эрлан с помощью ICQ Отправить сообщение для Эрлан с помощью Skype™
Автор По умолчанию

помогите VBA


помогите написать программу на VBA задача Иосифа Флавеля
Существует легенда, что Иосиф Флавий выжил и стал известным благодаря математической одаренности. В ходе Иудейской войны он в составе отряда из 41 иудейского воина был загнан римлянами в пещеру. Предпочитая самоубийство в плену, воины решили выстроиться в круг и последовательно убивать каждого 3го из живых до тех пор пока е останется ни одного человека. Однако Иосиф наряду с 1 из единомышленников счел подобный конец бессмысленным - он быстро вычислил места в круге, на которые себя и товарища. И лишь, поэтому остался жив.
для числа 3 либо общую буду благодарен
  Ответить с цитированием Наверх
Старый 01.12.2013, 16:43   #2
Местный
 
Аватар для 1qwerty12
 
Регистрация: 28.11.2012
Адрес: Россия
Сообщений: 123
Репутация: 67
По умолчанию

ого )
  Ответить с цитированием Наверх
Старый 03.12.2013, 20:03   #3
Местный
 
Аватар для Эрлан
 
Регистрация: 04.02.2013
Адрес: Забайкальск
Сообщений: 79
Репутация: 22
Отправить сообщение для Эрлан с помощью ICQ Отправить сообщение для Эрлан с помощью Skype™
Автор По умолчанию

нету тру кодеров чтоли?)
  Ответить с цитированием Наверх
Старый 03.12.2013, 20:22   #4
* Гарант и Проверяющий



 
Аватар для h4ckeR
 
Регистрация: 08.05.2009
Сообщений: 1,210
Репутация: 1184
Отправить сообщение для h4ckeR с помощью ICQ Отправить сообщение для h4ckeR с помощью Skype™
По умолчанию

Эрлан, Есть, но они заняты несколько иными делами, которые имеют явно более высокий приоритет, нежели задача второго-третьего курса обучения
__________________
[Ссылки скрыты от гостей.]
  Ответить с цитированием Наверх
Старый 03.12.2013, 22:51   #5
Матерый

 
Аватар для WYSIWYG
 
Регистрация: 08.02.2013
Сообщений: 328
Репутация: 212
Отправить сообщение для WYSIWYG с помощью ICQ
По умолчанию

Вот что есть в инете c++


#include <stdio.h>

void PrintWarriors( int* war, int n ) {

int i ;

for ( i = 0; i < n; i++ )
printf( "%3d", war[i] ) ;
printf( "\n" ) ;

}

int GetNextWarriorToKill( int* war, int jLastKilled, int n, int k ) {

int jToKill = jLastKilled + 1 ,
kLive = 1 ;

do {
if ( jToKill == n )
jToKill = 0 ;
else {
if (war[jToKill++] == 0 )
++kLive ;
}
} while ( kLive <= k ) ;

return jToKill-1 ;

}

int main() {

const int n = 10,
k = 3 ;
int i,
jLastKilled = -1 ,
jToKill ,
nKilled = 0;
int war[1000] ;

for ( i = 0; i < n; i++ )
war[i] = 0 ;

while ( nKilled < n-1 ) {
jToKill = GetNextWarriorToKill( war, jLastKilled, n, k ) ;
war[jToKill] = ++nKilled ;
jLastKilled = jToKill ;
PrintWarriors( war, n ) ;
}
PrintWarriors( war, n ) ;

for ( i = 0; i < n, war[i] != 0; i++ )
;
printf( "The last warrior has #%d (counting from 1)\n", i+1 ) ;

return 0 ;
}
  Ответить с цитированием Наверх
Пользователь сказал cпасибо:
h4ckeR (03.12.2013)
Старый 03.12.2013, 23:00   #6
* Гарант и Проверяющий



 
Аватар для h4ckeR
 
Регистрация: 08.05.2009
Сообщений: 1,210
Репутация: 1184
Отправить сообщение для h4ckeR с помощью ICQ Отправить сообщение для h4ckeR с помощью Skype™
По умолчанию

WYSIWYG, Вроде верное решение, точнее уже сможет сказать Abso!
__________________
[Ссылки скрыты от гостей.]

Последний раз редактировалось h4ckeR; 03.12.2013 в 23:02.
  Ответить с цитированием Наверх
Старый 04.12.2013, 06:48   #7
Местный
 
Аватар для Эрлан
 
Регистрация: 04.02.2013
Адрес: Забайкальск
Сообщений: 79
Репутация: 22
Отправить сообщение для Эрлан с помощью ICQ Отправить сообщение для Эрлан с помощью Skype™
Автор По умолчанию

первый курс)
  Ответить с цитированием Наверх
Старый 08.12.2013, 09:50   #8
Местный
 
Аватар для Эрлан
 
Регистрация: 04.02.2013
Адрес: Забайкальск
Сообщений: 79
Репутация: 22
Отправить сообщение для Эрлан с помощью ICQ Отправить сообщение для Эрлан с помощью Skype™
Автор По умолчанию

Кликните на для просмотра офф топика близко?
  Ответить с цитированием Наверх
Старый 08.12.2013, 14:17   #9
Старожил


 
Аватар для gg.Groove
 
Регистрация: 21.08.2010
Адрес: Almaty
Сообщений: 1,054
Репутация: 212
По умолчанию

Эрлан, cнабди этот код комментариями что-ли? и перемененным дай нормальные имена
__________________

[Ссылки скрыты от гостей.]
  Ответить с цитированием Наверх
Старый 08.12.2013, 20:19   #10
Местный
 
Аватар для Эрлан
 
Регистрация: 04.02.2013
Адрес: Забайкальск
Сообщений: 79
Репутация: 22
Отправить сообщение для Эрлан с помощью ICQ Отправить сообщение для Эрлан с помощью Skype™
Автор По умолчанию

Кликните на для просмотра офф топика
вот и всё равно не работает
  Ответить с цитированием Наверх
Старый 08.12.2013, 21:41   #11
Старожил

 
Аватар для DKzetname
 
Регистрация: 19.05.2013
Сообщений: 524
Репутация: 423
Отправить сообщение для DKzetname с помощью ICQ Отправить сообщение для DKzetname с помощью AIM Отправить сообщение для DKzetname с помощью MSN Отправить сообщение для DKzetname с помощью Yahoo Отправить сообщение для DKzetname с помощью Skype™
По умолчанию

Цитата:
1 var i, N, K, col, temp: longint;
2 var c: array[1..500] of boolean;
3 begin
4 assign(input, 'input.txt'); reset(input);
5 assign(output, 'output.txt'); rewrite(output);
6 read(N,K);
7 i:=1;
8 while col<N-1 do
9 begin
10 temp:=0;
11 while temp<K do
12 begin
13 if c[i]=false then
14 inc(temp);
15 inc(i);
16 if i=N+1 then
17 i:=1;
18 end;
19 if i>1 then c[i-1]:=true
20 else
21 c[N]:=true;
22 inc(col);
23 end;
24 for i:=1 to N do
25 if c[i]=false then
26 col:=i;
27 writeln(col);
28end.
Добавлено через 3 минуты
нашел с пояснением
Цитата:
1 uses crt;
2 var a:array[1..500]of integer;
3 i,j,k,n:integer;
4 begin
5 {вводим количество}
6 repeat
7 write('N:');
8 readln(n);
9 until (n>1)and(n<=500);
10 {вводим счетчик}
11 repeat
12 write('K:');
13 readln(k);
14 until (k>0)and(k<=100);
15 {раставляем всех по кругу}
16 for i:=1 to n do
17 a[i]:=i;
18 {начальное значение}
19i:=0;
20 repeat
21{вычисляем новое значение}
22 i:=(i+k-1)mod n+1;{к текущему номеру прибавляем шаг-1, берем остаток от деления на n+1}
23 {удаляем человека из круга}
24 for j:=i to n-1 do {сдвигаем конец массива на это число}
25 a[j]:=a[j+1];
26 dec(n); {уменьшаем размер массива}
27 {корректируем указатель}
28 dec(i);{на шаг назад}
29 until n=1;
30 {выводим результат}
31 writeln('Остался номер ',a[1]);
32 readln
33 end.
__________________

ZETMAN

Последний раз редактировалось DKzetname; 08.12.2013 в 21:44. Причина: Добавлено сообщение
  Ответить с цитированием Наверх
Старый 08.12.2013, 21:46   #12
Матерый

 
Аватар для WYSIWYG
 
Регистрация: 08.02.2013
Сообщений: 328
Репутация: 212
Отправить сообщение для WYSIWYG с помощью ICQ
По умолчанию

Вот на моем визуальном барсике
Код:
    Dim soldiercount As Integer
    Dim skipcount As Integer
    Function joe(ByVal soldiercount As Integer, ByVal skipcount As Integer) As Integer

        Dim i As Integer

        Dim lst As New List(Of Integer)

        For i = 1 To soldiercount

            lst.Add(i)

        Next i

        Do Until lst.Count = 1

            'move top guys to end

            For j As Integer = 0 To skipcount - 2

                i = lst(0) : lst.RemoveAt(0) : lst.Add(i)

            Next j

            'kill appropriate guy

            lst.RemoveAt(0)

        Loop

        Return lst(0)

    End Function

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        soldiercount = TextBox1.Text
        skipcount = TextBox2.Text
        TextBox3.Text = joe(soldiercount, skipcount)
    End Sub
Добавлено через 1 минуту
DKzetname, он уже это нашел
[Ссылки скрыты от гостей.]


Последний раз редактировалось WYSIWYG; 08.12.2013 в 21:50. Причина: Добавлено сообщение
  Ответить с цитированием Наверх
Старый 08.12.2013, 21:51   #13
Старожил

 
Аватар для DKzetname
 
Регистрация: 19.05.2013
Сообщений: 524
Репутация: 423
Отправить сообщение для DKzetname с помощью ICQ Отправить сообщение для DKzetname с помощью AIM Отправить сообщение для DKzetname с помощью MSN Отправить сообщение для DKzetname с помощью Yahoo Отправить сообщение для DKzetname с помощью Skype™
По умолчанию

Кликните на для просмотра офф топика
__________________

ZETMAN
  Ответить с цитированием Наверх
Старый 08.12.2013, 21:56   #14
Матерый

 
Аватар для WYSIWYG
 
Регистрация: 08.02.2013
Сообщений: 328
Репутация: 212
Отправить сообщение для WYSIWYG с помощью ICQ
По умолчанию

Воооо... Нашел на VBA
Если поймешь-молодец, а мне как то лень вникать
Код:
Dim checker As String

Dim soldiers As Integer

Dim skips As Integer



Private Sub SetupSoldiers()

    soldiers = Range("A1").Value

    skips = Range("B1").Value

    

    checker = "C" & CStr(soldiers + 1)

    

    For i = 1 To soldiers

        Range("C" & CStr(i)).Value = 1

    Next

    

    Range(checker) = "=SUM(C1:C" & CStr(soldiers) & ")"

    Range(Replace(checker, "C", "B")) = "Counting survivors:"

End Sub



Private Sub CommenceKilling()

    Dim i As Integer: i = 0

    Do While Range(checker).Value > 1

        For j = 1 To soldiers

            Dim cur As String: cur = "C" & CStr(j)

            If Range(cur).Value = "1" Then

                i = i + 1

            End If

            

            If i = skips Then

                Range(cur).Value = 0

                i = 0

                If Range(checker).Value = 1 Then

                    Exit For

                End If

            End If

        Next

    Loop

    

    For i = 1 To soldiers

        If Range("C" & CStr(i)).Value = 1 Then

            Range("D" & CStr(i)).Value = "Survivor!"

        End If

    Next

End Sub



Private Sub AskNumbers()

    Columns("A").ClearContents

    Columns("B").ClearContents

    Columns("C").ClearContents

    Columns("D").ClearContents

    Range("A1").Value = InputBox("No. of Soldiers")

    Range("B1").Value = InputBox("Skips per kill")

End Sub



Private Sub CommandButton1_Click()

    AskNumbers

    SetupSoldiers

    CommenceKilling

End Sub
Добавлено через 2 минуты
И самое главное
Если в адресной строке написать
[Ссылки скрыты от гостей.]
а не
[Ссылки скрыты от гостей.]
то можно найти много интересного

Добавлено через 3 минуты
[Ссылки скрыты от гостей.]
Читай темку, я все страницы листать не стал

Добавлено через 4 минуты
Хуя я тебе понаписал

Последний раз редактировалось WYSIWYG; 08.12.2013 в 22:01. Причина: Добавлено сообщение
  Ответить с цитированием Наверх
Ответ


Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 
Опции темы
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход


Powered by vBulletin
Copyright © 2017 vBulletin Solutions, Inc.
Перевод: zCarot | Дизайн: G-A | Верстка: OldEr
Текущее время: 14:19. Часовой пояс GMT +4.