Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.50/4: Рейтинг темы: голосов - 4, средняя оценка - 4.50
0 / 0 / 0
Регистрация: 17.10.2016
Сообщений: 47

Найти более оптимальный способ решения задачи

18.10.2016, 19:07. Показов 859. Ответов 1
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Вот задача:
Имеется две таблицы:
1) Items (Id identity(1,1) int, Name varchar(50)) в которой
хранятся составляющие продукты и изделия из них
Id Name
1 Чай
2 Заварка
3 Сахар
4 Торт
5 Тесто
6 Мука
7 Яйцо
8 Яблоко
2) Products (ProductId int, ItemId int) - перекрестная таблица.
ProductId и ItemId ссылаются на Items, в ProductId помещаются
изделия, в ItemId составляющие, из которых состоит изделие.
Изделия могут состоять как из простых составляющих, так и из
других изделий (вложенность неограниченна!).
ProductId ItemId
1 2
1 3
4 5
5 6
5 7
4 3
Задача 1: Написать скрип по созданию и заполнению таблиц.
Задача 2: Необходимо вывести все составляющие, которые не
являются изделиями (не имеют составляющих)
Задача 3: Необходимо вывести все простые составляющие, из
которых состоит Торт.

помогите пожалуйста сделать код более оптимальным, вот как я решил эту задачу:

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
#include <iostream>
#include <iomanip>
 
 
using namespace std;
 
struct Items
{
    int Id[8] = {1,2,3,4,5,6,7,8};
    char *Name[8] = {"tee", "welding", "sugar", "cake", "dough", "flour", "agg", "apple"};;
};
 
int main()
{
   Items product;
    for(int i = 0; i < 8; i++)
    {
        product.Id[i];
        product.Name[i];
    }
    cout << setw(2) << "Id" << setw(8) << "Name" << endl;
    for(int i = 0; i < 8; i++)
    cout << setw(2) << product.Id[i] << setw(8) << product.Name[i] << endl;
    cout << endl;
    cout << setw(2) << "Product" << setw(8) << "ItemId" << endl;
    cout << setw(2) << product.Id[0] << setw(12) << product.Id[1] << endl;
    cout << setw(2) << product.Id[0] << setw(12) << product.Id[2] << endl;
    cout << setw(2) << product.Id[3] << setw(12) << product.Id[4] << endl;
    cout << setw(2) << product.Id[4] << setw(12) << product.Id[5] << endl;
    cout << setw(2) << product.Id[4] << setw(12) << product.Id[6] << endl;
    cout << setw(2) << product.Id[3] << setw(12) << product.Id[2] << endl;
    cout << endl;
    cout << "Components are not products: ";
    cout << product.Name[1] << ", " << product.Name[2] << ", " << product.Name[5] << ", " << product.Name[6] << ", " << product.Name[7] << endl << endl;
    cout << "Components of the cake: " ;
    cout << product.Name[4] << ", " << product.Name[5] << ", " << product.Name[6] << ", " << product.Name[7] << ", " << product.Name[7] << endl << endl;
 
    return 0;
}
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
18.10.2016, 19:07
Ответы с готовыми решениями:

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

Самый быстрый способ решения задачи a+b
несколько раз ходил на олимпиады, во многих из них в пробном туре даётся задача а+б, решаю её стандартным способом: cin &gt;&gt; a...

Есть ли более простой и оптимальный способ решения данной задачи?
Добрый день! Ситуация следующая: Есть класс Event. public class Event { public string Name { get; set; } public...

1
7804 / 6568 / 2988
Регистрация: 14.04.2014
Сообщений: 28,705
18.10.2016, 20:46
Анализ, наверное, надо делать, а не подставлять готовые номера. Сначала торт найти по названию, затем выбрать составляющие.
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
18.10.2016, 20:46
Помогаю со студенческими работами здесь

Ищу оптимальный код для решения одной задачи
Добрый день, друзья! У меня есть одна задача с табличными данными, которую я в принципе могу решить и уже трижды решал на python, R и с...

Способ решения задачи
Подскажите пожалуйста, каким методом можно решить данную задачу? Спасибо.

Способ решения задачи
Торговая организация являющаяся официальным дилером производителя, ведет бухгалтерский учет в программе «1С:Бухгалтерия». Бухгалтерский...

Объясните способ решения задачи (таблицы)
В файле PROG содержится текст программы на языке Си. Файл разделен на строки произвольной длины ( но не более 256 ). Используя...

Графический способ решения задачи линейного программирования
на рисунке показано как оно должно выглядеть. Нужно написать код!


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

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Новые блоги и статьи
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru