Задача
|
|
rayman30011 | Дата: Пятница, 20 Ноября 2015, 08:53 | Сообщение # 1 |
был не раз
Сейчас нет на сайте
| Вася работает программистом и получает 50$ за каждые 100 строк кода. За каждое третье опоздание Васю штрафуют на 20$. Реализовать меню: - пользователь вводит желаемый доход Васи и количество опозданий, посчитать, сколько строк кода ему надо написать - пользователь вводит количество строк кода, написанное Васей и желаемый объем зарплаты. Посчитать, сколько раз Вася может опоздать - пользователь вводит количество строк кода и количество опозданий, определить, сколько денег заплатят Васе и заплатят ли вообще.
Ребят помогите, я въехать не могу. Заранее спасибо
|
|
| |
Gudleifr | Дата: Пятница, 20 Ноября 2015, 08:59 | Сообщение # 2 |
почти ветеран
Сейчас нет на сайте
| Цитата rayman30011 ( ) Ребят помогите, я въехать не могу. А не надо в интернетах вместо школы сидеть... Откуда мы тут знаем, как Вам учитель объяснял, что надо делать? Какие средства велел использовать? В чем, наконец, проблема: в "меню" или в "Васе"?
Быдлокодеры любят повторять: "логика, убивающая мозг",- когда их пытаются заставить программировать.
|
|
| |
rayman30011 | Дата: Пятница, 20 Ноября 2015, 09:13 | Сообщение # 3 |
был не раз
Сейчас нет на сайте
| Gudleifr, проблема в "посчитать", хотя бы первое. Дальше сам разберусь.
Цитата Какие средства велел использовать что ты имел введу под этим?
Цитата А не надо в интернетах вместо школы сидеть... В школе Си не учат. Я учусь в вечерке.
|
|
| |
Gudleifr | Дата: Пятница, 20 Ноября 2015, 09:35 | Сообщение # 4 |
почти ветеран
Сейчас нет на сайте
| Цитата rayman30011 ( ) проблема в "посчитать" По условию задачи: Доход = 50 * Строки / 100 - 20 * Опоздания 1-я задача: Дано: Доход и Опоздания. Найти Строки. Строки = 100 / 50 * (Доход - 20 * Опоздания).
Цитата rayman30011 ( ) что ты имел введу под этим? Ну, как бы, в этом задании сами расчеты очевидны, а, вот, как это вывести на дисплей, сильно зависит от того, какая у Вас учебная конфигурация компьютера.
Быдлокодеры любят повторять: "логика, убивающая мозг",- когда их пытаются заставить программировать.
|
|
| |
rayman30011 | Дата: Пятница, 20 Ноября 2015, 09:44 | Сообщение # 5 |
был не раз
Сейчас нет на сайте
| Gudleifr, я тоже изначально так сделал, НО за каждое третье опоздание его штрафуют, а не за каждое. Вот в это я въехать не могу(почему я это в первом посте не написал? хз) Добавлено (20 ноября 2015, 09:44) --------------------------------------------- Gudleifr, Цитата По условию задачи: Доход = 50 * Строки / 100 - 20 * Опоздания 1-я задача: Дано: Доход и Опоздания. Найти Строки. Строки = 100 / 50 * (Доход - 20 * Опоздания). Если бы так...
|
|
| |
Gudleifr | Дата: Пятница, 20 Ноября 2015, 09:50 | Сообщение # 6 |
почти ветеран
Сейчас нет на сайте
| rayman30011, виноват, просмотрел.
По условию задачи: Доход = 50 * Строки / 100 - 20 * Опоздания / 3 1-я задача: Дано: Доход и Опоздания. Найти Строки. Строки = 100 / 50 * (Доход - 20 * (Опоздания / 3)).
Спасибо FlyOfFly, в последней строке нужны скобки, чтобы не поделить (20 * Опоздания) / 3.
Быдлокодеры любят повторять: "логика, убивающая мозг",- когда их пытаются заставить программировать.
Сообщение отредактировал Gudleifr - Пятница, 20 Ноября 2015, 11:58 |
|
| |
rayman30011 | Дата: Пятница, 20 Ноября 2015, 10:05 | Сообщение # 7 |
был не раз
Сейчас нет на сайте
| Gudleifr, по такой формуле ты считаешь какой штраф за одно опоздание(20 * опоздания / 3). Если я введу одно опоздание Васю оштрафуют на 6.66$. Но мне нужно выплачивать штраф именно за каждое 3 опоздание. То есть если я введу 2 опоздания - Васю не оштрафуют. Если введу 5 опозданий - Васю оштрафуют на 20$ и т.д. Добавлено (20 ноября 2015, 10:05) --------------------------------------------- Gudleifr, как то надо реализовать через if-else
|
|
| |
Gudleifr | Дата: Пятница, 20 Ноября 2015, 10:06 | Сообщение # 8 |
почти ветеран
Сейчас нет на сайте
| rayman30011, в языке C, если переменная объявлена как целочисленная (int), то при делении результат будет обрезаться (не округляться) до целого. 5 / 3 = 1.
Быдлокодеры любят повторять: "логика, убивающая мозг",- когда их пытаются заставить программировать.
Сообщение отредактировал Gudleifr - Пятница, 20 Ноября 2015, 10:06 |
|
| |
rayman30011 | Дата: Пятница, 20 Ноября 2015, 10:19 | Сообщение # 9 |
был не раз
Сейчас нет на сайте
| Gudleifr, Код int main() { int dohod; int opozdania;
cin >> dohod; cin >> opozdania;
cout << 100 / 50 * (dohod - 20 * opozdania / 3) << endl;
system("PAUSE"); return 0; } вводим доход 200, опоздания 2. По задаче мы должны получить 400 строк
Цитата Строки = 100 / 50 * (Доход - 20 * Опоздания / 3). по такой формуле я получаю 374. Нужно как-то проверять, а я хз как можно проверить.
Сообщение отредактировал rayman30011 - Пятница, 20 Ноября 2015, 10:20 |
|
| |
Gudleifr | Дата: Пятница, 20 Ноября 2015, 10:25 | Сообщение # 10 |
почти ветеран
Сейчас нет на сайте
| Цитата rayman30011 ( ) По задаче мы должны получить 400 строк Можно считать и в сотнях strok = (strok + 99) / 100 * 100;
Цитата rayman30011 ( ) а я хз как можно проверить. Вывести все промежуточные результаты:
opozdania / 3 20 * opozdania / 3 dohod - 20 * (opozdania / 3)
Быдлокодеры любят повторять: "логика, убивающая мозг",- когда их пытаются заставить программировать.
Сообщение отредактировал Gudleifr - Пятница, 20 Ноября 2015, 11:59 |
|
| |
rayman30011 | Дата: Пятница, 20 Ноября 2015, 10:51 | Сообщение # 11 |
был не раз
Сейчас нет на сайте
| Gudleifr, Цитата opozdania / 3 20 * opozdania / 3 dohod - 20 * opozdania / 3 то, что надо. Ща будем будем разбираться как это работает.
|
|
| |
FlyOfFly | Дата: Пятница, 20 Ноября 2015, 11:38 | Сообщение # 12 |
заслуженный участник
Сейчас нет на сайте
| Цитата Gudleifr ( ) Строки = 100 / 50 * (Доход - 20 * floor(Опоздания / 3)). может так, для floor надо math.h подключить
Сообщение отредактировал FlyOfFly - Пятница, 20 Ноября 2015, 11:39 |
|
| |
Gudleifr | Дата: Пятница, 20 Ноября 2015, 11:39 | Сообщение # 13 |
почти ветеран
Сейчас нет на сайте
| FlyOfFly, нет, C сам умеет делить нацело.
Быдлокодеры любят повторять: "логика, убивающая мозг",- когда их пытаются заставить программировать.
|
|
| |
FlyOfFly | Дата: Пятница, 20 Ноября 2015, 11:44 | Сообщение # 14 |
заслуженный участник
Сейчас нет на сайте
| Цитата Gudleifr ( ) FlyOfFly, нет, C сам умеет делить нацело. все равно, floor нужен для округление в меньшею сторону, а то при 2/3=1 будет или ты про сам floor
|
|
| |
Gudleifr | Дата: Пятница, 20 Ноября 2015, 11:46 | Сообщение # 15 |
почти ветеран
Сейчас нет на сайте
| FlyOfFly, целочисленная арифметика C не умеет округлять, она только обрезает. Это сделано для совместимости с %.
A = A / B * B + A % B
Точнее, так работают большинство процессоров, а C нагло пользуется.
Быдлокодеры любят повторять: "логика, убивающая мозг",- когда их пытаются заставить программировать.
Сообщение отредактировал Gudleifr - Пятница, 20 Ноября 2015, 11:47 |
|
| |
FlyOfFly | Дата: Пятница, 20 Ноября 2015, 11:47 | Сообщение # 16 |
заслуженный участник
Сейчас нет на сайте
| Цитата Gudleifr ( ) A = A / B * B + A % B
а ясно, ну тогда можно просто написать
Цитата Gudleifr ( ) Строки = 100 / 50 * (Доход - 20 * (int)(Опоздания / 3)). на всякий случай, хотя может в C даже int не надо писать, ну все равно нужно Опаздание/3 нужно писать в скобках
Сообщение отредактировал FlyOfFly - Пятница, 20 Ноября 2015, 11:49 |
|
| |
Gudleifr | Дата: Пятница, 20 Ноября 2015, 11:58 | Сообщение # 17 |
почти ветеран
Сейчас нет на сайте
| Цитата FlyOfFly ( ) нужно Опаздание/3 нужно писать в скобках Да, я так спешил признать ошибку, что забыл про них. Но (int) не нужен. Исправил выше.
Быдлокодеры любят повторять: "логика, убивающая мозг",- когда их пытаются заставить программировать.
|
|
| |