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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 06.10.2017, 18:10   #1
Maray
Форумчанин
 
Регистрация: 03.01.2015
Сообщений: 160
Восклицание Система передачи данных

Добрый день!
Помогите, пожалуйста, реализовать данную систему
"Система передачи данных обеспечивает передачу пакетов данных из пункта А в пункт С через транзитный пункт В. В пункт А пакеты поступают с интервалом 10 мс. Здесь они буферизируются в накопители емкостью 20 пакетов и передаются в пункт В по любой из двух линий АБ1 за время 20 мс или АВ2 за время 20 мс. В пункте В они снова буферизируются в накопителе емкостью 25 пакетов и далее передаются в пункт С по любой из двух линий: ВС1 за время 25 мс или ВС2 за время 25 мс. Причем пакеты из АВ1 поступают в ВС1, а из АВ2 в ВС2. Чтобы не было переполнения накопителя в пункте В, при достижении очередью порогового значения 20 происходит подключение резервной аппаратуры и время передачи снижается для линий ВС1 и ВС2 до 15 мс. При передаче пакета по любой из линий происходит 0 сбоев. Если количество сбоев превысило три, то пакет передается заново. Смоделировать прохождение через систему передачи данных 1000 пакетов."
Maray вне форума Ответить с цитированием
Старый 06.10.2017, 18:12   #2
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,695
По умолчанию

http://www.programmersforum.ru/showthread.php?t=312892
p51x на форуме Ответить с цитированием
Старый 06.10.2017, 18:16   #3
alexzk
Форумчанин
 
Регистрация: 12.04.2017
Сообщений: 889
По умолчанию

Цитата:
Сообщение от p51x Посмотреть сообщение
не так! У вас рекурсия!

Вот верно

http://www.programmersforum.ru/showthread.php?t=34061
alexzk вне форума Ответить с цитированием
Старый 06.10.2017, 18:22   #4
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 19,042
По умолчанию

Вы не перепутали "помогите" и "сделайте за меня"?

Покажите свои наработки, конкретные вопросы и т.п.

Или в раздел Фриланс если вы не хотите ничего делать, а ищете кого-то, кто выполнит ваши задачи за вознаграждение.
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 08.10.2017, 15:37   #5
Maray
Форумчанин
 
Регистрация: 03.01.2015
Сообщений: 160
По умолчанию

Правильно ли я поняла задание и выполнила его?
Код:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace ConsoleApplication1
{
    class Program
    {
        static void Main(string[] args)
        {
            int PunktA = 0;
            bool LineAB1 = true;
            bool LineAB2 = true;
            int PunktB1 = 0;
            int PunktB2 = 0;
            bool LineBC1 = true;
            bool LineBC2 = true;
            int PunktC = 0;
            int Time = 0;
            int TimeA = 0;
            int TimeAB1 = 0;
            int TimeAB2 = 0;
            int TimeBC1 = 0;
            int TimeBC2 = 0;
            int TiBC = 20;

            Console.Write("Введите количество передаваемых пакетов: ");
            int Package = Convert.ToInt32(Console.ReadLine());
            do
            {
                Time = Time + 5;
                TimeA = TimeA + 5;
                if (LineAB1 == false)
                {
                    TimeAB1 = TimeAB1 + 5;
                    if (TimeAB1 == 20)
                    {
                        LineAB1 = true;
                        PunktB1 = PunktB1 + 20;
                        TimeAB1 = 0;
                    }
                }
                else
                if (LineAB2 == false)
                {
                    TimeAB2 = TimeAB2 + 5;
                    if (TimeAB2 == 20)
                    {
                        LineAB2 = true;
                        PunktB2 = PunktB2 + 20;
                        TimeAB2 = 0;
                    }
                }
                if (PunktB1+PunktB2 >= 20)
                {
                    TiBC = 15;
                }
                if (LineBC1 == false)
                {
                    TimeBC1 = TimeBC1 + 5;
                    if (TimeBC1 == TiBC)
                    {
                        LineBC1 = true;
                        PunktC = PunktC + 25;
                        TimeBC1 = 0;
                    }
                }
                else
                if (LineAB2 == false)
                {
                    TimeBC2 = TimeBC2 + 5;
                    if (TimeBC2 == TiBC)
                    {
                        LineBC2 = true;
                        PunktC = PunktC + 25;
                        TimeBC2 = 0;
                    }
                }
                if(TimeA == 10)
                {
                    PunktA = PunktA + 1;
                    TimeA = 0;
                }
                if(PunktA>20)
                {
                    if (LineAB1 == true)
                    {
                        LineAB1 = false;
                        PunktA = PunktA - 20;
                    }
                    else
                    {
                        LineAB2 = false;
                        PunktA = PunktA - 20;
                    }
                }
                if(PunktB1>25)
                {
                    if (LineBC1 == true)
                    {
                        LineBC1 = false;
                        PunktB1 = PunktB1 - 25;
                    }
                }
                if (PunktB2 > 25)
                {
                   if(LineBC2==true)
                   {
                        LineBC2 = false;
                        PunktB2 = PunktB2 - 25;
                    }
                }
                if(Time%15==0)
                {
                Console.WriteLine("Время: {0}мс. Количество пакетов в пунктах: A: {1}, B: {2}, C: {3}.", Time, PunktA, PunktB1+PunktB2, PunktC);
                }
            }
            while(PunktC<Package);
            Console.ReadLine();
        }
    }
}
Maray вне форума Ответить с цитированием
Старый 08.10.2017, 20:59   #6
Maray
Форумчанин
 
Регистрация: 03.01.2015
Сообщений: 160
По умолчанию

И нужно чтобы еще выводилась вероятность подключения резервной аппаратуры и время работы резервной аппаратуры. Помогите, пожалуйста
Maray вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Передачи данных Eihmann Помощь студентам 0 12.03.2013 22:20
Скорость передачи данных Человек_Борща Работа с сетью в Delphi 4 23.12.2012 18:51
Порядок передачи данных.+ Farrel Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 1 13.05.2011 19:11
Странные передачи данных bulldog5293 Работа с сетью в Delphi 14 28.11.2010 23:33