0 / 0 / 0
Регистрация: 25.02.2020
Сообщений: 17

Перемещение между пунктами. Подсчет времени перемещения

20.03.2020, 20:21. Показов 2076. Ответов 2
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
добрый вечер, кто может помочь решить интересную задачу на C? ну или хотя бы дать направление реализации ее раешения?
Задача:
У пользователя есть список любимых мест, например: «дом», «универ», «кафешка», «парк», «тосамоеместо» и т.д. (придумайте что-нибудь на ваш вкус). Между всеми возможными пунктами известно время перемещения в минутах. Необходимо написать код, в котором будет реализован диалог с пользователем, начинающийся фразой: «Доброе утро, куда отправимся сегодня?». После этого пользователь вводит название места. Если же пункта с таким названием нет, надо сообщить об этом и предложить ввести название снова. Считается что в начале пользователь находится дома. После ввода, надо показать на экране время в пути в минутах. На это же число секунд, что занимает путь в минутах, программа засыпает. По истечению этого времени выводится сообщение: «Вот мы и на месте!». В каждом месте пользователь может провести только 1 час, и программа соответственно ждёт 1 минуту. После этого программа предлагает пользователю отправиться ещё куда-нибудь. Общее время, затраченное на перемещения и пребывания, суммируется, программа заканчивает свою работу и желает «Спокойной ночи!» после того как общее время составит 12 часов.
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
20.03.2020, 20:21
Ответы с готовыми решениями:

Вычислить работу А по формуле: A=FScos(a), где F –сила, S- перемещение, a-угол между направлениями силы и перемещения
Вычислить работа А по формуле: A=FScos(a), где F –сила, S- перемещение, a-угол между направлениями силы и перемещения. Добавлено через...

Определить, как число клиентов зависит от времени обслуживания и перемещения между банкоматами.
Ребята, помогите. Не знаю как сделать это задание! 7 банкоматов, расположенных на одинаковом расстоянии друг от друга, обслуживают 80...

Подсчёт времени между получением сигналов
Доброго времени суток, уважаемые участники форума. Стоит примерно такая задача: есть три переключателя и три индикатора. На...

2
из племени тумба-юбма
 Аватар для мама Стифлера
2520 / 1817 / 418
Регистрация: 29.11.2015
Сообщений: 8,840
Записей в блоге: 15
23.03.2020, 01:31
очень интересная задача и ее функционал

Добавлено через 5 минут
Но вот только данный пункт:
Цитата Сообщение от Ineyd Посмотреть сообщение
программа заканчивает свою работу и желает «Спокойной ночи!» после того как общее время составит 12 часов
по логике следует делать по приходу домой. Следовательно, после общего проведенного времени(12 часов), программа сперва должна предложить отправится домой. И уже после прибытия домой, заканчивать работу фразой «Спокойной ночи!».

Добавлено через 7 минут
Еще вот этот пункт:
Цитата Сообщение от Ineyd Посмотреть сообщение
После ввода, надо показать на экране время в пути в минутах. На это же число секунд, что занимает путь в минутах, программа засыпает
хотелось бы переработать на:
После ввода, надо показать на экране время в пути в минутах. И на этом же экране, должен начаться отсчет времени пути в секундах, на убывание до 0
тогда будет визуально видно, что программа работает, а не просто засыпание
0
 Аватар для СкриптыУбийцы
95 / 59 / 38
Регистрация: 02.01.2019
Сообщений: 161
23.03.2020, 13:01
Лучший ответ Сообщение было отмечено Ineyd как решение

Решение

для начала вот таймер отсчета
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
void count_down() ;
 
int main()
{
    int run_time = 7 ; // minutes
 
    for(int i=0; i<run_time; i++) {
            count_down(); 
            printf("remains %d minutes\n" , run_time - 1 - i) ;
    }
      return 0;
    }
 
//every one minute
void count_down() {
int ms = 60*10000 ;
 clock_t start_time = clock();
 while (clock() < start_time + ms)
        ;
}
Добавлено через 22 минуты
структура для хранения данных
C
1
2
3
4
5
6
7
8
    struct places {
        char *name;
        int to1;
        int to2;
    };
    struct places my_places[] =
    {{"home", 20, 3}, {"sharaga",20, 23}, {"alco_market",3,17}};
// у каждого члена, начиная со второго(после home) первый to1 будет всегда home и т.д.
Добавлено через 2 часа 5 минут
основная часть программы вроде готова
C
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
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include <string.h>
void count_down() ;
 
int main()
{
    int run_time; // minutes
    int num_items = 3;
    char LOC[15], DEST[15];
    LOC[0] = '\0';
    DEST[0] = '\0';
 
    int loc_i, dest_i ;
 
    struct places
    {
        char * name;
        int arr[2];
    };
 
    struct places my_places[] =
    {{"home", {20, 3}}, {"sharaga",{20, 23}}, {"alco_market",{3,17}} };
 
    printf("enter your local [blank] destination\n");
    scanf("%s %s", &LOC, &DEST);
 
    printf("%s %s\n",LOC,DEST);
    for(int i=0; i<num_items; i++)
    {
        if(strcmp( my_places[i].name, LOC ) == 0)
            loc_i = i;
    };
    for(int i=0; i<num_items; i++)
    {
        if( strcmp( my_places[i].name, DEST ) == 0 )
            dest_i = i;
    };
    printf("%d %d\n", loc_i,dest_i);
 
    if (dest_i > loc_i )
    {
        run_time = my_places[loc_i].arr[dest_i - 1 ];
    }
    else
    {
        run_time = my_places[loc_i].arr[dest_i];
    }
    printf("runtime is: %d", run_time);
 
//  printf("target %s", my_places[0].name) ;
 
    for(int i=0; i<run_time; i++)
    {
        count_down();
        printf("remains %d minutes\n\a", run_time - 1 - i) ;
    }
    return 0;
}
 
//every one minute
void count_down()
{
    int ms = 60*1000 ; //можно поставить просто 1000 для проверки
    clock_t start_time = clock();
    while (clock() < start_time + ms)
        ;
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
23.03.2020, 13:01
Помогаю со студенческими работами здесь

Быки и коровы: Сделать подсчет времени между попытками пользователя
Здравствуйте! Есть игра на Бэйсике &quot;Быки и коровы&quot;. Суть игры в том, что компьютер загадывает 4 буквы, пользователь должен угадать, при...

Расстояние между пунктами
Помогите мне пожалуйста решить задачу: Дана карта местности с обозначенными на ней N пунктами. Написать программу, которая позволяет...

Расстояние между пунктами меню
Как сделать разное расстояние между пунктами меню? типо 1--2------3--4.

Растояние между пунктами меню
Подскажите как убрать расстояние между пунктами вертикального меню вот картинка для ясности. всяко пробывал но остается все равно ...

Картинка между пунктами меню
день добрый. как добавить между пунктами меню png картинку в виде темного кружка, что бы при :hover картинки пропадали с двух сторон ...


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

Новые блоги и статьи
Мульти-тенантные БД с PostgreSQL Row Security
Codd 23.04.2025
Современные облачные сервисы и бизнес-приложения всё чаще обслуживают множество клиентов в рамках единой программной инфраструктуры. Эта архитектурная модель, известная как мульти-тенантность, стала. . .
Реализация конвейеров машинного обучения с Python и Scikit-learn
AI_Generated 23.04.2025
Мир данных вокруг нас растёт с каждым днём, и умение эффективно обрабатывать информацию стало необходимым навыком. Специалисты по машинному обучению ежедневно сталкиваются с задачами предобработки. . .
Контроллеры Kubernetes Ingress: Сравнительный анализ
Mr. Docker 23.04.2025
В Kubernetes управление входящим трафиком представляет собой одну из ключевых задач при построении масштабируемых и отказоустойчивых приложений. Ingress — это API-объект, который служит вратами. . .
Оптимизация кода Python с Cython и Numba
py-thonny 23.04.2025
Python прочно обосновался в топе языков программирования благодаря своей простоте и гибкости. Разработчики любят его за читабельность кода и богатую экосистему библиотек. Но у этой медали есть и. . .
Микросервис на Python с FastAPI и Docker
ArchitectMsa 23.04.2025
В эпоху облачных вычислений и растущей сложности программных продуктов классическая монолитная архитектура всё чаще уступает место новым подходам. Микросервисная архитектура становится фаворитом. . .
Создаем веб-приложение на Vue.js и Laravel
Reangularity 23.04.2025
Выбор правильного технологического стека определяет успех веб-проекта. Laravel и Vue. js формируют отличную комбинацию для создания современных приложений. Laravel — это PHP-фреймворк с элегантным. . .
Максимальная производительность C#: Span<T> и Memory<T>
stackOverflow 22.04.2025
Мир высоконагруженных приложений безжалостен к неэффективному коду. Каждая миллисекунда на счету, каждый выделенный байт памяти может стать причиной падения производительности. Разработчики на C#. . .
JWT аутентификация в Java
Javaican 21.04.2025
JWT (JSON Web Token) представляет собой открытый стандарт (RFC 7519), который определяет компактный и самодостаточный способ передачи информации между сторонами в виде JSON-объекта. Эта информация. . .
Спринты Agile: Планирование, выполнение, ревью и ретроспектива
EggHead 21.04.2025
Спринты — сердцевина Agile-методологии, позволяющая командам создавать работающий продукт итерационно, с постоянной проверкой гипотез и адаптацией к изменениям. В основе концепции спринтов лежит. . .
Очередные открытия мега простых чисел, сделанные добровольцами с помощью домашних компьютеров
Programma_Boinc 21.04.2025
Очередные открытия мега простых чисел, сделанные добровольцами с помощью домашних компьютеров. 3 марта 2025 года, в результате обобщенного поиска простых чисел Ферма в PrimeGrid был найден. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru