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

Ребят, как разобраться в составлении программы на Си. Прошу

23.10.2013, 19:02. Показов 1877. Ответов 27
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Здравствуйте ребят!
Не могли бы вы мне объяснить или показать с чего конкретно начинать по одной задачи.
Как этот алгоритм построить, точнее блок-схему.
Дана задача :
При покупке товара на сумму от 200 до 500 руб. предоставляется скидка 3%, при покупке товара на сумму от 500 до 800 – скидка 5%, при покупке товара на сумму от 800 до 1000 руб. – скидка 7%, свыше 1000 руб. – скидка 10%. Покупатель приобрел 8 рулонов обоев по цене Х1 и две банки краски по цене Х2. Сколько он заплатил?

Не могли бы вы сказать, к какому источнику обратиться, чтобы решать подобного рода задачи?
Чтобы можно было на что-то опираться. Просто проблема в том, понимая или не понимая мне надо написать данный код на эту задачу. Но, все же, хотелось, чтобы хотя бы что-то понял. И да, что представляет с собой математическая модель данной задачи? Как ее записать? Надеюсь на вас, ибо осталась только последняя надежда.
Спасибо за любую помощь.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
23.10.2013, 19:02
Ответы с готовыми решениями:

Ребят, как разобраться? Нужно откомментирвать код
Хочу написать бот для игрушки, не могу понять как происходит генерация sig. Подскажите пожалуйста,...

Ребят, прошу совета
Доброго времени суток. Понадобился ПК для офиса. Можно б/у, даже нужно. Что бы 1c нормально...

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

Ребят, прошу совета! Траблы в IE8
Доброе время суток! Сверстал макет, все хорошо, НО, во всех браузерах кроме IE 8 отображение...

27
Просто Лис
Эксперт Python
5736 / 3534 / 1056
Регистрация: 17.05.2012
Сообщений: 10,371
Записей в блоге: 9
23.10.2013, 19:14 2
Как решить текущую задачу:
1) считаем сумму без скидки
сумма = 8*х1 + 2*х2
2) в зависимости от суммы выбираем размер скидки
если сумма меньше 200 - 0%
если сумма больше 200 и меньше 500 - 3%
если сумма больше 500 и меньше 800 - 5%
если сумма больше 800 и меньше 1000 - 7%
если сумма больше 1000 - 10%
3) и считаем сколько заплатит покупатель
= сумма * (1-проценты)

А теперь попробуй написать код
1
75 / 75 / 10
Регистрация: 26.02.2013
Сообщений: 224
23.10.2013, 19:17 3
Mistikkx, тут if нужно использовать. Почитайте Лафоре, там есть про вложенные операторы выбора.
Алгоритм приблизительно такой:
1. ввести х1, х2.
2. посчитать суму покупки.
3. проверить через if сколько скидка.
4. посчитать суму - скидка.
1
1 / 1 / 0
Регистрация: 04.10.2013
Сообщений: 77
23.10.2013, 19:30  [ТС] 4
Цитата Сообщение от Stella Посмотреть сообщение
Mistikkx, тут if нужно использовать. Почитайте Лафоре, там есть про вложенные операторы выбора.
Алгоритм приблизительно такой:
1. ввести х1, х2.
2. посчитать суму покупки.
3. проверить через if сколько скидка.
4. посчитать суму - скидка.
Я сейчас постараюсь что-нибудь наколячить, сможете проверить?
0
9 / 9 / 6
Регистрация: 22.10.2013
Сообщений: 36
23.10.2013, 19:40 5
Цитата Сообщение от Mistikkx Посмотреть сообщение
Я сейчас постараюсь что-нибудь наколячить, сможете проверить?
Конечно! Работайте, ждём результатов )
0
1 / 1 / 0
Регистрация: 04.10.2013
Сообщений: 77
23.10.2013, 20:01  [ТС] 6
Цитата Сообщение от Verbillion Посмотреть сообщение
Конечно! Работайте, ждём результатов )
Вот такое получилось(((

C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include <stdio.h>
#include <windows.h>
{
int main(void) {
int x1,x2;
printf ("X1=");
scanf ("%d"&X1)
printf ("X2=");
scanf ("%d"&X2)
printf ("D=");
scanf ("%d"&D);
D=8*x1+2*x12;
if (summ = 8*x1 + 2*x2;
summ *= (summ<200)?1:(summ<500)?0.97:(summ<800)?0.95:(summ<1000)?0.93:0.9;);
}
return 0;)
}
0
Просто Лис
Эксперт Python
5736 / 3534 / 1056
Регистрация: 17.05.2012
Сообщений: 10,371
Записей в блоге: 9
23.10.2013, 20:03 7
Цитата Сообщение от Mistikkx Посмотреть сообщение
scanf ("%d"&X1)
Здесь будет ошибка компиляции. Имена переменных чувствительны к регистру.
C++
1
scanf("%d",&x1);
В конце каждой команды ставится точка с запятой
0
1 / 1 / 0
Регистрация: 04.10.2013
Сообщений: 77
23.10.2013, 20:06  [ТС] 8
Цитата Сообщение от Рыжий Лис Посмотреть сообщение
Здесь будет ошибка компиляции. Имена переменных чувствительны к регистру.
C++
1
scanf("%d",&x1);
В конце каждой команды ставится точка с запятой
Исправил, но все равно много ошибок.
0
Просто Лис
Эксперт Python
5736 / 3534 / 1056
Регистрация: 17.05.2012
Сообщений: 10,371
Записей в блоге: 9
23.10.2013, 20:08 9
переменная D не объявлена
C++
1
int D;
Добавлено через 2 минуты
C++
1
2
3
4
//если сумма меньше 200 - 0%
if (D<200){
  summ = D;
}
1
1 / 1 / 0
Регистрация: 04.10.2013
Сообщений: 77
23.10.2013, 20:08  [ТС] 10
Цитата Сообщение от Рыжий Лис Посмотреть сообщение
переменная D не объявлена
C++
1
int D;
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include <stdio.h>
#include <windows.h>
{
int main(void) {
int x1,x2, D;
printf ("X1=");
scanf ("%d"&x1;
printf ("X2=");
scanf ("%d"&x2;
printf ("D=");
scanf ("%d"&D);
D=8*õ1+2*õ2;
if (summ = 8*x1 + 2*x2;
summ *= (summ<200)?1:(summ<500)?0.97:(summ<800)?0.95:(summ<1000)?0.93:0.9;);
}
{
return 0;)
}
Вот так?
0
5498 / 4893 / 831
Регистрация: 04.06.2011
Сообщений: 13,587
23.10.2013, 20:09 11
Удалил.
0
Просто Лис
Эксперт Python
5736 / 3534 / 1056
Регистрация: 17.05.2012
Сообщений: 10,371
Записей в блоге: 9
23.10.2013, 20:12 12
сделайте несколько if ов. Один if - одно условие

Добавлено через 2 минуты
функция scanf принимает два параметра строку, например "%d" и ссылку на переменную. Параметры пишутся в скобках и разделяются запятыми.
C++
1
2
//пример. Читаем целое число в переменную x1
scanf("%d",&x1);
0
1 / 1 / 0
Регистрация: 04.10.2013
Сообщений: 77
23.10.2013, 20:16  [ТС] 13
Цитата Сообщение от Рыжий Лис Посмотреть сообщение
переменная D не объявлена
C++
1
int D;
Добавлено через 2 минуты
C++
1
2
3
4
//если сумма меньше 200 - 0%
if (D<200){
  summ = D;
}
Извините за мою тупость.
Просто Я пытаюсь понять, но у меня ничего не получается. Начали просто недавно, а в школе даже и не знал о существовании предмета информатика. Но код мне надо написать

Добавлено через 1 минуту
Цитата Сообщение от alsav22 Посмотреть сообщение
Удалил.
Почему сообщения на данный форум были удалены?
0
Просто Лис
Эксперт Python
5736 / 3534 / 1056
Регистрация: 17.05.2012
Сообщений: 10,371
Записей в блоге: 9
23.10.2013, 20:19 14
Цитата Сообщение от Mistikkx Посмотреть сообщение
Я пытаюсь понять, но у меня ничего не получается.
Нормально пока получается

Добавлено через 1 минуту

Не по теме:

Цитата Сообщение от Mistikkx Посмотреть сообщение
Почему сообщения на данный форум были удалены?
пользователь отредактировал свое сообщение



Добавлено через 36 секунд
Давай пока сделаем ввод данных

Добавлено через 50 секунд
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
#include <stdio.h>
#include <windows.h>
 
int main(void) {
int x1,x2, D;
printf ("X1=");
scanf ("%d"&x1;
printf ("X2=");
scanf ("%d"&x2;
printf ("D=");
scanf ("%d"&D);
return 0;
}
Скомпилируй это и исправь ошибки
0
1 / 1 / 0
Регистрация: 04.10.2013
Сообщений: 77
23.10.2013, 20:22  [ТС] 15
Цитата Сообщение от Рыжий Лис Посмотреть сообщение
Нормально пока получается

Добавлено через 1 минуту

Не по теме:


пользователь отредактировал свое сообщение



Добавлено через 36 секунд
Давай пока сделаем ввод данных

Добавлено через 50 секунд
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
#include <stdio.h>
#include <windows.h>
 
int main(void) {
int x1,x2, D;
printf ("X1=");
scanf ("%d"&x1;
printf ("X2=");
scanf ("%d"&x2;
printf ("D=");
scanf ("%d"&D);
return 0;
}
Скомпилируй это и исправь ошибки
Все, исправил.
Потом нам нужно посчитать сумму, да? То есть summ = 8*x1 + 2*x2;?

Добавлено через 1 минуту
[QUOTE=Mistikkx;5225827]Все, исправил.
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
#include <stdio.h>
#include <windows.h>
{
int main(void) {
int x1,x2, D;
printf ("X1=");
scanf ("%d"&x1;
printf ("X2=");
scanf ("%d"&x2;
printf ("D=");
scanf ("%d"&D);
D=8*o1+2*o2;
if (summ = 8*x1 + 2*x2;
if (D<200){
  summ = D;
}
if (D<500){
  summ = D;
}
if (D<800){
  summ = D;
}
if (D<1000){
  summ = D;
 
return 0;)
}
0
Просто Лис
Эксперт Python
5736 / 3534 / 1056
Регистрация: 17.05.2012
Сообщений: 10,371
Записей в блоге: 9
23.10.2013, 20:24 16
Цитата Сообщение от Mistikkx Посмотреть сообщение
То есть summ = 8*x1 + 2*x2;?
да.
Цитата Сообщение от Mistikkx Посмотреть сообщение
printf ("D=");
scanf ("%d"&D);
Что хранится в D? Если ничего, то удали
0
1 / 1 / 0
Регистрация: 04.10.2013
Сообщений: 77
23.10.2013, 20:25  [ТС] 17
Цитата Сообщение от Mistikkx Посмотреть сообщение
1
2
3
4
5
6
7
8
9
10
11
12
13
C
1
2
3
4
5
6
7
8
9
10
11
#include <stdio.h>
#include <windows.h>
int main(void) {
int x1,x2, D;
printf ("X1=");
scanf ("%d"&x1;
printf ("X2=");
scanf ("%d"&x2;
printf ("D=");
scanf ("%d"&D);
return 0;
z.cpp:7: error: invalid operands of types `const char[3]' and `int' to binary `operator&'
z.cpp:9: error: invalid operands of types `const char[3]' and `int' to binary `operator&'
z.cpp:11: error: invalid operands of types `const char[3]' and `int' to binary `operator&'
z.cpp:13:2: warning: no newline at end of file
Вот на что он ругается.
0
Просто Лис
Эксперт Python
5736 / 3534 / 1056
Регистрация: 17.05.2012
Сообщений: 10,371
Записей в блоге: 9
23.10.2013, 20:26 18
Цитата Сообщение от Mistikkx Посмотреть сообщение
if (D<200){
summ = D;
}
if (D<500){
summ = D;
}
if (D<800){
summ = D;
}
if (D<1000){
summ = D;
Правильно. А теперь умножь на проценты
0
1 / 1 / 0
Регистрация: 04.10.2013
Сообщений: 77
23.10.2013, 20:27  [ТС] 19
Цитата Сообщение от Рыжий Лис Посмотреть сообщение
Что хранится в D? Если ничего, то удали
То есть, как Я правильно вас понял, то D (Стоимость со скидкой) мы получим в итоге ?
0
Просто Лис
Эксперт Python
5736 / 3534 / 1056
Регистрация: 17.05.2012
Сообщений: 10,371
Записей в блоге: 9
23.10.2013, 20:30 20
Цитата Сообщение от Mistikkx Посмотреть сообщение
Вот на что он ругается.
закрой скобки в scanf и поставь запятые между параметрами в этих строчках
C++
1
2
scanf ("%d"&x1;
scanf ("%d"&x2;
Добавлено через 1 минуту
Цитата Сообщение от Mistikkx Посмотреть сообщение
D (Стоимость со скидкой) мы получим в итоге
Ладно, переменная пусть остается. Удали строчку
C++
1
scanf ("%d"&D);
ведь D мы будем считать, а не вводить с клавиатуры
0
23.10.2013, 20:30
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
23.10.2013, 20:30
Помогаю со студенческими работами здесь

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

Прошу помочь разобраться с полем, как в модуле производится расчет?
Доброго времени суток всем. Есть база данных(прилагается). Досталась по наследству. Не могу понять,...

Помощь в составлении программы
Создать абстрактный класс «периферийное устройство» (наименование, тип интерфейса). На его основе...

Трудность в составлении программы!
Имеется информация о количестве осадков, выпавших за каждый день месяца, и о температуре воздуха в...


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

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